跳转至

遗留评估访问控制

!!! warning “传统访问控制”

此页面记录了旧版 `allowAccess` 格式。新评估应使用 [`accessControl`](accessControl.md)。现有评估可以继续使用 `allowAccess`,直到迁移。当您准备好迁移时,请参阅[从旧版访问控制迁移](accessControl.md#migrating-from-legacy-access-control)。

默认情况下,只有课程人员 可以访问评估。为了控制对评估的访问,在 infoAssessment.json 文件中使用 allowAccess 选项。

访问控制检查

在 ZJUI-Learn 中,有两种类型的检查可确定学生是否有权访问评估:

  1. 首先,课程实例必须发布给学生,并且学生必须注册该课程实例。 infoCourseInstance.json 中的 publishing 配置以及 发布扩展 可用于发布课程实例。学生只要注册并发布课程实例就可以查看课程实例。这本身并不授予他们访问课程实例中的任何评估的权限。

  2. 其次,学生还必须有权访问特定的评估。此访问权限是通过 infoAssessment.json 中的 allowAccess 规则授予的。然而,即使学生已被授予访问评估的权限,他们也只能在有权访问课程实例的情况下才能实际访问该评估(请参阅上一项)。

allowAccess 格式

allowAccess的一般格式为:

{
  "allowAccess": [
    {
      /* <accessRule1> */
    },
    {
      /* <accessRule2> */
    },
    {
      /* <accessRule3> */
    }
  ]
}

每个 accessRule 都是一个对象,指定学生可以访问评估的一组情况。如果任何访问规则允许访问,则可以访问评估。每个访问规则可以有一个或多个限制,如下所示:

访问限制 意义 示例
uids 需要数组中的 UID 之一才能访问。 "uids": ["student1@example.com", "student2@example.com"]
startDate 仅允许在此日期之后访问。 "startDate": "2015-01-19T00:00:01"
endDate 仅允许在此日期之前访问。 "endDate": "2015-05-13T23:59:59"
mode 只允许从此服务器模式访问。默认情况下,模式为公共,除非提供 examUuid,在这种情况下,默认为考试。 "mode": "Exam"
password 开始评估需要密码。通常用于监考考试。 "password": "mysecret"
examUuid PrairieTest 学生必须注册参加的考试的 UUID。 "examUuid": "5719ebfe-ad20-42b1-b0dc-c47f0f714871"

每个访问规则仅在满足所有限制的情况下才会授予访问权限。

综上所述,allowAccess使用的算法:

each accessRule is True if (restriction1 AND restriction2 AND restriction3)
allowAccess is True if (accessRule1 OR accessRule2 OR accessRule3)

如果满足所有限制,则可以应用于评估的各种效果如下:

访问效果 意义 示例
active 学生是否可以创建新的评估实例并提交问题答案(默认 true)。 "active": false
credit 最大学分占全部学分的百分比(可以超过 100)。 "credit": 100
showClosedAssessment 关闭时是否允许查看考核内容(默认true)。 "showClosedAssessment": false
showClosedAssessmentScore 是否允许查看封闭式评估的分数(默认true)。 "showClosedAssessmentScore": false
timeLimitMin 完成评估的时间限制(以分钟为单位)(仅适用于类型为考试的评估)。 "timeLimitMin": 60

如果满足多个访问规则,则从中获取最高的 credit 值。没有明确的 credit 值的访问规则的学分为 0,这意味着它们允许查看评估,但不允许做学分问题。

访问规则还可以包含已弃用的 role 属性。现在这被忽略并且没有任何效果。应删除包含 roleTAInstructor 的任何访问规则。课程人员现在在“人员”选项卡 上进行管理。

枣子

所有日期均使用 24 小时时间以“YYYY-MM-DDTHH:MM:SS”格式指定(这是 ISO 8601RFC 3339 配置文件)。所有时间均以课程实例的时区 为准。

如果要包括全天,那么通常最好在午夜后 1 秒开始,并在午夜前 1 秒结束。这可以避免对午夜时间的含义产生任何混淆。例如,对于 4 月 5 日至 4 月 7 日(含)的 3 天窗口,从 2015-04-05T00:00:01 开始并以 2015-04-07T23:59:59 结束。

服务器模式

每个用户以_模式_访问ZJUI-Learn服务器,如下所示。这可用于限制对基于当前模式的评估的访问。访问规则的模式具有以下作用:

模式 什么时候允许访问?
Public 通常允许访问,但当学生在 PrairieTest 上签到(无论是在考试中心还是在课程管理的会话中)时,访问会被阻止。这是默认模式。
Exam 访问通常会被阻止,并且仅当学生在 PrairieTest 上签到(无论是在考试中心还是在课程管理的会话中)时才允许访问。当指定 examUuid 时,使用该模式。

在一般使用中,最好为任何作业保留默认的公共模式(学生应在家中或没有特殊访问控制的评估),并通过设置 "examUuid" 使用考试模式,以进行由 PrairieTest 控制访问的考试。这将使考试只能在考试中心或受控课程中进行,并且在考试期间无法进行家庭作业。

信用

当可用学分低于100%时,百分比分数计算为min(credit, points / maxPoints * 100)。然而,学生的百分比分数永远不会减少,所以如果他们已经获得了更高的百分比分数,那么他们将保留它。例如,如果 credit = 80maxPoints = 10,那么当学生有 points = 8 时,他们的百分比分数将为 80%,而当他们有 points = 9points = 10 时,他们的百分比分数仍为 80%。

当可用信用超过100%时,则当points < maxPoints时,百分比分数计算为points / maxPoints * 100。但是,如果是 points = maxPoints,则百分比分数将被视为信用值。例如,如果 credit = 120,则随着 pointsmaxPoints 增加,学生将看到他们的百分比分数上升至 100%,然后当他们的 points 达到 maxPoints 时,他们的百分比分数将突然跃升至 120%。如果使用maxBonusPoints,并且学生能够获得高于maxPoints的分数,那么学生的百分比分数将基于此学分作为百分比,即他们的分数将被计算为credit * points / maxPoints。例如,如果 maxPoints = 10maxBonusPoints = 2credit = 120 和学生获得 11 分,则他们的分数将为 120 * 11 / 10 = 132%

时间限制

对于参加远程考试的学生来说,强制执行时间限制可能会有所帮助。这可以通过如下访问规则来完成:

{
  "allowAccess": [
    {
      "startDate": "2015-01-19T16:00:00",
      "endDate": "2015-01-19T18:00:00",
      "timeLimitMin": 90,
      "credit": 100
    }
  ]
}

上面的示例将为学生提供 90 分钟的考试时间,他们必须在日期限制内开始(并完成)。如果学生在距离 endDate 足够近的时间开始考试,使得 endDate 的剩余时间小于 timeLimitMin,则考试的倒计时器将使用 endDate 的剩余时间(减去 1 分钟缓冲区)而不是 timeLimitMin 进行初始化。请参阅下图来了解这一点。

限时插画

Note

不应为 PrairieTest 管理的考试中心或课程课程设置考试时间限制。相反,此类考试应将 "examUuid" 设置为与 PrairieTest 考试关联的值,在这种情况下,timeLimitMin 将不起作用,并且时间限制将由 PrairieTest 强制执行。

公开评估的时限调整

infoAssessment.json 文件中的时间限制所做的更改仅在评估开始之前生效。学生打开评估并创建实例后,将根据评估开始时的时间限制规则设置该评估的时间限制。在某些情况下,教师或监考人员可能需要更改分配给个别学生或具有开放评估实例的所有学生的时间限制。此更改可能是由于原始配置中的错误、意外事件(例如停电或调度问题)或让步造成的。

在评估的员工视图中,选择学生选项卡。此选项卡将显示已开始评估的所有学生的列表。 “剩余”列将包含以下值之一:

  • 值“已关闭”表示学生已完成评估,时间已用完,或者(对于 autoClose 设置为 true 的考试评估)学生处于非活动状态超过六个小时。学生无法提交这些评估的答案。
  • 值“开放(无时间限制)”表示评估开放且没有时间限制(上面列出的 autoClose 设置除外)。学生可以提交这些评估的答案。
  • 值“已过期”表示学生的时间限制已过,但评估尚未结束。这可能是由于学生在没有选择“完成”按钮的情况下关闭了评估,或者因为最近更改了时间限制并且学生的浏览器尚未更新其时间限制。当学生尝试打开评估时,他们将收到一条消息,表明他们的计时器已用完,并且无法提交进一步的答案。
  • 指示分钟数的值指示考试自动关闭之前的剩余时间。在此时间到期之前,学生可以提交答案。请注意,该时间是在加载页面时计算的,因此要获取更新的时间,必须刷新页面。

每个学生的“剩余”列内都会显示一个铅笔图标,这应该允许监考人员修改学生的时间限制。对于没有时间限制的实例,此操作允许监考人员设置总时间限制(基于学生开始评估的时间)或剩余时间(从当前时间开始)。对于设置时间限制的实例,除了这两个选项之外,该操作还允许教师在当前限制中添加或减去时间,或者删除时间限制。还可以选择将时间限制设置为“已过期”,这将导致计时器设置为当前时间,并实际上阻止学生进一步提交。如果评估已关闭,则更改时间限制将重新打开评估。

还可以一次更改所有实例的时间限制:在未选择任何实例的情况下,选择表格上方的操作→更改时间限制(要仅更改某些学生的时间限制,请先选择他们的实例)。建议对所有实例进行的任何更改都考虑到具有不同时间限制的学生(例如,具有无障碍优惠的学生)。可用于更改时间限制的一种选项是从所有学生的当前总时间限制中添加/减去特定百分比的选项。此选项允许监考人员为具有不同时间限制的学生维持优惠百分比。

密码

远程或在线考试有时使用“监考人员密码”来控制对考试的访问。这可以通过如下访问规则来启用:

{
  "allowAccess": [
    {
      "startDate": "2015-01-19T00:00:01",
      "endDate": "2015-05-13T23:59:59",
      "password": "mysecret",
      "credit": 100
    }
  ]
}

在学生参加考试之前,监考人员需要在考试开始页面的密码字段中输入短语 mysecret。或者,监考人员可以在课程期间向学生提供此短语。

考试 UUID

要要求学生在测试中心或课程管理的 PrairieTest 会话中参加特定考试,examUuid 应设置为 PrairieTest 中的 UUID 值。例如:

{
  "allowAccess": [
    {
      "examUuid": "5719ebfe-ad20-42b1-b0dc-c47f0f714871",
      "credit": 100
    }
  ]
}

请注意,在这种情况下,不应指定 startDateendDate。这些将由 PrairieTest 自动确定,不应在 ZJUI-Learn 中设置。

显示/隐藏封闭式评估

当使用时间限制时,当时间限制用完时,评估将“关闭”。同样,在考试模式中,对于禁用实时评分的评估,一旦学生点击“完成评估”,评估将“关闭”。当评估结束时,它会自动对所有保存的答案进行评分并计算新的总分。默认情况下,此时学生仍然可以查看整个考试,查看他们答对/错了哪些问题,并自行查看问题。

要阻止学生查看封闭式评估详细信息,请在 allowAccess 规则中设置 "showClosedAssessment": false,如下所示:

{
  "allowAccess": [
    {
      "startDate": "2015-01-19T00:00:01",
      "endDate": "2015-05-13T23:59:59",
      "timeLimitMin": 50,
      "showClosedAssessment": false,
      "credit": 100
    },
    {
      "active": false,
      "showClosedAssessment": false
    }
  ]
}

请注意,showClosedAssessment 语句在上面列出了两次,一次是在评估正在进行时(startDateendDate),另一次是在 endDate 之后生效的第二条规则中。额外的 "active": false 限制可防止学生在 endDate 之后开始考试。

显示/隐藏所有分数信息

当将 showClosedAssessment 设置为 false 时,默认情况下学生仍然可以在提交考试后立即看到他们的评估分数。

要阻止学生查看封闭式评估分数,请在 allowAccess 规则中设置 "showClosedAssessmentScore": false,如下所示:

{
  "allowAccess": [
    {
      "startDate": "2015-01-19T00:00:01",
      "endDate": "2015-05-13T23:59:59",
      "timeLimitMin": 50,
      "showClosedAssessment": false,
      "showClosedAssessmentScore": false,
      "credit": 100
    },
    {
      "active": false,
      "showClosedAssessment": false,
      "showClosedAssessmentScore": false
    }
  ]
}

请注意,showClosedAssessmentshowClosedAssessmentScore 语句在上面列出了两次,一次是在评估正在进行时(startDateendDate),另一次是在 endDate 之后生效的规则中。额外的 "active": false 限制可防止学生在 endDate 之后开始考试。

showClosedAssessmentScore访问规则限制通常与禁用实时评分和设置"showClosedAssessment": false结合使用。它还可以用于手动评分 的评估,以隐藏评估成绩,直到所有学生都已评分。

主动评估

active 访问规则限制对于允许学生查看他们即将进行的评估非常有用。 将试卷返回给学生 时也应使用。

默认情况下,访问规则中的 active 属性为 true。这意味着,如果存在适用于特定时间/上下文的访问规则,学生可以开始评估、创建新的评估实例并提交问题的答案。

如果在特定时间/环境下没有适用的访问规则,学生将无法查看评估,并且评估也不会显示在其评估页面上。他们只能在成绩簿中查看自己的评估成绩。

如果在访问规则中将 active 设置为 false,学生仍然可以在评估页面上查看评估,但无法启动评估、创建新评估实例或提交问题答案。如果评估当前未激活但将来会激活,学生可以通过查看“评估”页面上的 Available credit 列来了解评估何时激活。

如果访问规则中active设置为false,则可用的credit不能设置为0(默认值)以外的任何值。

请注意,当使用 "active": false 允许学生在完成评估后查看其作业时,学生仍然可以访问和修改与评估问题相关的任何工作区 中的文件。但是,他们将无法提交任何更改的工作区文件进行评分。

active 访问规则限制的示例如下所示:

{
  "allowAccess": [
    {
      "startDate": "2015-02-16T00:00:01",
      "endDate": "2015-02-16T23:59:59",
      "timeLimitMin": 50,
      "credit": 100
    },
    {
      "startDate": "2015-01-01T00:00:01",
      "endDate": "2015-02-15T23:59:59",
      "active": false
    }
  ]
}

在上面的示例中,从 1 月 1 日到 2 月 15 日,学生可以在评估页面上看到评估,但无法开始评估。他们将看到一条消息,表明评估将于 2 月 16 日提供。第一条访问规则于 2 月 16 日适用,由于 activetrue(默认情况下),因此学生可以在当天开始评估并提交问题答案。

访问规则示例

考试示例

{
  "allowAccess": [
    {
      "uids": ["student1@example.com", "student2@example.com"],
      "credit": 100,
      "startDate": "2014-09-12T00:00:01",
      "endDate": "2014-09-12T23:59:59"
    },
    {
      "credit": 100,
      "startDate": "2014-09-07T00:00:01",
      "endDate": "2014-09-10T23:59:59"
    }
  ]
}

上述 allowAccess 指令意味着该评估可在两种不同的情况下进行,并且始终获得满分。首先,有两名特定学生有权参加 9 月 12 日的考试。其次,任何学生都可以在 9 月 7 日至 9 月 10 日期间访问此评估。请注意,例外规则通常首先列出,以便在确定访问权限时它们具有优先权。另请注意,由于第二条规则与第一条规则不重叠,因此第一条规则中列出的两名特定学生也可以在第二条规则中设置的范围内参加考试。

远程学生考试示例

请参阅远程考试 了解更多详细示例。

{
  "allowAccess": [
    {
      "credit": 100,
      "examUuid": "5719ebfe-ad20-42b1-b0dc-c47f0f714871"
    },
    {
      "uids": ["student1@example.com", "student2@example.com"],
      "credit": 100,
      "startDate": "2014-09-10T11:00:00",
      "endDate": "2014-09-10T11:59:59",
      "timeLimitMin": 50
    }
  ]
}

上述 allowAccess 指令适用于在校学生在考试中心(或课程管理的 PrairieTest 课程)和远程学生参加的考试。首先,任何人(即在校学生)都可以在考试中心进行评估("examUuid" 规则)以获得全额学分。其次,一组指定的学生(远程学生)可以在 9 月 10 日参加考试并获得全额学分。对于校外学生,我们设定了时间限制(50 分钟)。对于在校学生,不应给予时间限制,因为时间限制是由 PrairieTest 强制执行的。

如果学生超过考试的 timeLimitMin 分钟持续时间或超过配置的 endDate(以先到者为准),学生的访问权限将过期。考试期间学生可以看到时间限制; endDate 配置不是。如果学生在访问规则不再适用时尝试加载评估页面,他们将收到“访问被拒绝”消息。

作业示例

{
  "allowAccess": [
    {
      "active": false,
      "endDate": "2014-10-11T23:59:59"
    },
    {
      "credit": 110,
      "startDate": "2014-10-12T00:00:01",
      "endDate": "2014-10-15T23:59:59"
    },
    {
      "credit": 100,
      "startDate": "2014-10-16T00:00:01",
      "endDate": "2014-10-18T23:59:59"
    },
    {
      "credit": 80,
      "startDate": "2014-10-19T00:00:01",
      "endDate": "2014-10-25T23:59:59"
    },
    {
      "startDate": "2014-10-26T00:00:01"
    }
  ]
}

allowAccess 指令适用于 Homework 评估。学生可以看到 10 月 12 日之前存在作业,但由于作业是 "active": false,他们将无法看到问题或开始作业。从10月12日起,他们可以随时开始做作业,作业会经历四个不同的阶段:(1),如果他们在10月15日之前满分完成作业,将获得10%的奖金,(2),他们在10月18日截止日期之前获得满分,(3),他们最多可以晚一周(10月15日)完成作业。 25 日)获得 80% 学分,并且 (4) 他们将能够在之后的任何时间查看作业并提交答案以获取反馈,但不会获得更多积分。作业可见性也将受到课程实例发布配置 的限制,因此在课程实例日期范围之外无法以任何方式访问作业。

预览访问控制

单击右上角的用户以查看角色选择器下拉列表。这将允许您预览不同角色和用户的访问控制。选择器将根据您所在的页面提供其他选项。

角色选择器下拉菜单

此功能允许您以自己的身份预览课程,但具有不同的角色和限制:

  • “员工视图”:默认视图。
  • “学生视图”:模拟学生视图。
  • “无访问限制的学生视图”:模拟学生视图,而不考虑任何访问控制。

您还可以更改为其他有效用户,以像他们一样查看课程。输入 UID 并单击“更改 UID”后,您可以在两个附加视图之间切换:

  • “学生视图”:模拟特定用户的视图。
  • “无访问限制的学生视图”:模拟特定用户的视图,而不考虑任何访问控制。