Moodle中的角色与权限控制
有关角色的概念:
角色是权限访问的集合,用于在魔灯中管理者可以在特定情境下委派特定的权限给特定的用户。
例如,您可能有一个“教师”的角色,这个角色允许教师完成一些特定的功能(而不是其他的)。一旦这个角色存在,您就能在课程中委派"教师"这个权限给某个用户,也可能将“教师”这个角色分配给课程类别中的用户,这样他就可以操作该类别中的所有课程,或者委派这个角色一个用户,使其在诸如一个“讨论区”中具有特定的权限。
有关权限的概念:
权限用于描述用户被授予做相应事情的权利。
例如,一个权限是使用“讨论区中发帖”的功能。
在每个角色中,您都可以通过四个设置来选择相应的权限,这四个值分别是:
- 继承
- 这是默认的设置,通常这是个折中的方式。例如,管理员设置魔灯中默认注册用户的权限是学生,那么相应的继承中表示的从学生这个角色上继承相应的权限。
- 允许
- 通过这个设置,管理员可以委派给一个角色的具有访问和控制那些功能的权限,允许他们进行那些操作。例如,管理员想委派给一个角色(家长),家长具有查看学生回帖信息,同时自己可以发帖,可以对学生进行评价,但是学生不能对自己和其他学生进行评价。
- 阻止
- 通过这个设置,管理员可以取消一个角色的具有访问和控制那些功能的权限,禁止他们进行那些操作。例如,管理员想委派给一个角色(家长),家长具有查看学生回帖信息,但是他不能发表帖子,也不能可以对学生进行评价,但是学生可以对自己和其他学生进行评价。
- 禁止
- 这个设置很少使用,但是偶然情况下,您可能想完全禁止一个角色的用户,不让他们在一个权限更低的情境中覆盖某些功能。例如,管理员想禁止某些用户在站点的讨论区中发帖的功能,这样的话,管理员就可以建立一个角色,设置相应发帖功能为“禁止”,这样这个角色同样可以在使用其他的功能。
解决权限冲突的办法
权限这个功能,通常情况下在一个“低”情境中的权限会覆盖一个“高”情境中的权限。例如,管理员在一个“课程类别”的情境中设置了可以对活动进行访问的权限,但是到了“课程类别”中的一个具体课程时,如果管理员设置了一个“低”情境的访问某个活动的权限,它将覆盖“课程类别”,这个更“高”情境中的权限。但是如果选择“禁止”的时候,这个功能将不会起作用。
如果在同一个情境中两个角色委派给同一个用户的时候,一个角色是“允许”访问,另一个角色是“阻止”访问,这种情况下,会优先考虑哪个呢?魔灯在这里会自动查阅系统已经存在的情境表(站点级别、课程类别级别、课程子类别级别、课程级别等)
例如,一个学生在某个课程中有两个角色,一个角色允许他“发帖”,另一个角色有阻止他“发帖”。这种情况下,魔灯将首先检查“课程类别”和“站点级别”这两种情境,通过检查另外一个已定义的访问权限来帮助决定。如果还没有检查到,默认情况将访问权限设置为“阻止”(因为两个设置彼此冲突,将就此取消,从而您就没有访问的权限)。
关于权限的解释,以上中文翻译似乎不太准确,附上英文解释:
Permissions are the settings that you grant for specific capabilities.
For example, one capability is "Start new discussions" (in forums).
In each role, you can choose to set the permission for such a capability to one of four values:
- NOT SET
- This is the default setting, generally. It's a neutral setting that means "use whatever setting the user already had". If a role gets assigned to someone (eg in a course) that has this permission for a capability, then the actual permission they'll have will just be the same as they already had at higher-level contexts (eg categories or system level). Ultimately, if permission is never allowed at any level, then the user will have no permission for that capability.
- ALLOW
- By choosing this you are granting permission for this capability to people who are assigned this role. This permission applies for the context that this role gets assigned plus all "lower" contexts. For example, if this role is a student role assigned to a course, then students will be able to "start new discussions" in all forums in that course, UNLESS some forum contains an override or a new assignment with a Prevent or Prohibit value for this capability.
- PREVENT
- By choosing this you are removing permission for this capability, even if the users with this role were allowed that permission in a higher context.
- PROHIBIT
- This is rarely needed, but occasionally you might want to completely deny permissions to a role in a way that can NOT be overridden at any lower context. A good example of when you might need this is when an admin wants to prohibit one person from starting new discussions in any forum on the whole system. In this case they can create a role with that capability set to "Prohibit" and then assign it to that user in the system context.
Conflict resolution of permissions
Permissions at a "lower" context will generally override anything at a "higher" context (this applies to overrides and assigned roles). The exception is PROHIBIT which can not be overridden at lower levels.
If two roles are assigned to a person in the same context, one with ALLOW and one with PREVENT, which one wins? In this case, Moodle will look up the context tree for a "decider".
For example, a student has two roles in a course, one that allows them to start new discussions, one that prevents them. In this case, we check the categories and the system contexts, looking for another defined permission to help us decide. If we don't find one, then permission is PREVENT by default (because the two settings cancelled each other out, and thus you have no permission).
在Moodle系统中,默认建立:
管理员---- 管理员可以对站点内的所有课程执行任何操作。
课程创建者 ----课程创建者可以创建新课程,并且可以任教。
教师---- 教师可以在负责的课程中做任何事,包括更改活动和为学生评分。
无编辑权教师---- 无编辑权教师可以在课程中教授和给学生们打分,但是可能无法改变活动。
学生---- 学生们在课程中通常拥有较少的特权。
访客---- 访客拥有最小的权限,而且通常不能在任何地方输入文本。
已认证用户---- 所有已登录用户