上一篇中介绍了基本的名词解释和安装部署要点。下面继续 :
配置管理与验证
SLK使用了SharePoint站点结构。没有单独的班级概念和用户验证。指导员与学习者均为权限控制而设。如果非要映射到班级的话,您可以将一个SPWeb作为一个班级站点。这里值得一提的是 ,SLK并没有一个固有的模板来限制整体结构如何组织。您可以在任何SPWeb上启用SLK功能。根据实际应用场景的组织结构特征,可以将 SPWeb对应到不同的层次上。不论你是学校班级科目,又或是大型企业部门,还是协会,松散型组织都可以通过SharePoint网站层级结构进行抽象。权限验证和学习者的课程可以跨不同的结点。下面是一个配置层次结构的例子:
SLK架构与SharePoint架构的关系
- 每个SPSite关联一个SharePoint内容数据库。内容数据包含了SPSite上的SPWeb的所有数据。一个内容数据库可以包含多个SPSite的数据,但是每个SPSite只能将它的数据存在一个内容数据库中。
- SLK数据库用于存储课程信息。实际被指派的文档存在SharePoint内容数据库中。但同时在SLK数据库中存储了课程记录信息。其中包含课程记录元数据、该记录的学习者和指导员是谁,以及关于每个学习者学习过程的所有数据。
- SLK数据库与SPSite的关系与SharePoint内容数据库与SPSite的关系很类似。每个SPSite都将其SLK数据存储在单个SLK数据库中,但是一个数据库可以包含多个SPSite的数据。
- 使用相同的SLK数据库的所有SPSite可以允许用户跨整个数据库来查看课程记录。因此,当一个用户在多个SPSite上都有要学习的课程的话,必须配置这些SPSite使用相同的SLK数据库
SharePoint 验证
WSS V3的验证架构只需要搞清楚以下几个基本的概念:
- 权限与角色
- 权限级别和权限指派、继承
- 域组(可嵌套、可添加到SharePoint组)
在SLK配置过程中管理员选择创建指导员和学习者权限级别后,SLK将在SPSite级别创建。依赖于SPWeb与SPSite的继承来使之在所有SPWeb中有效。之后即使SPWeb断开继承关系,在它指派权限时也会出现slk的权限级别。但是当SPWeb在SLK配置过程进行前就已经断开继承,那么这些SPWeb将不会自动具有新的指导员和学习者权限级别。如下图所示:
SLK 验证
SLK中的许多功能组件必须依赖于SPWeb级别的一些信息,比如:
- 哪些是指导员(用户或组成员)?
- 哪些用户是学习者(用户或组成员)?
- 当前用户是指导员吗?
- 当前用户是学习者吗?
其中1、 2发生在课程记录创建/编辑页面;3、4 发生在包含ALWP的页面,用于根据用户的角色显示适当的查询。
SLK使用SharePoint权限级别来在SPWeb范围内标识指导员和学习者。
为了取得某个SPWeb中所有作为指导员的用户,SLK将枚举所有分配指导员权限级别的组和用户。学习者情况类似。
SLK也会查询SharePoint来判断某个用户是否在SPWeb上被分配了角色。比如,张三这个用户在SPWeb1上具有某个特定的角色。
分配角色
为什么说是某个特定的角色呢?因为在配置过程中,管理员要指定哪个SharePoint角色SLK可以用来在所配置的SPSite内的SPWeb上标识指导员,哪个标识学习者。当然,如果您愿意,可以指定为同一个。这里可以使用已有的权限级别,也可以让SLK 帮忙建立新的。MS推荐使用自定义角色,并且命名为”SLK Instructor”与“SLK Learner”。这也是配置页面的默认值。
权限级别
SLK将用权限级别来标识用户和组。SLK创建权限级别时并不包含SharePoint权限。站点管理员可以为其添加权限,这也并不会影响SLK。当然还是希望管理员使用SLK以外的其他的权限级别和角色来为用户分配权限。
名称 | 显示在SharePoint UI中的描述信息 | |
Instructor | <可在配置过程中指定名称> | Can use SharePoint Learning Kit features to assign e-learning content to learners. |
Learner | <可在配置过程中指定名称> | Appears as a potential learner when new assignments are created using SharePoint Learning Kit. |
SharePoint 角色与SLK指派的关系
SharePoint角色的作用为:
- 当创建或修改指派时用于标识可能的学习者和指导员;
- 判断当前用户是指导员,以便允许其在该SPWeb上指派;
- 根据当前用户角色来判断哪个默认SLK查询应该显示在ALWP中;
SharePoint角色分配只是用来决定SLK功能对当前SPWeb的当前用户的可见性。角色指派并不会影响SLK指派。在一个SLK 指派创建后,该指派相关的学习者和指导员就被写入SLK数据库。ALWP中列出的查询结果和访问给定的指派或课程记录的权限是由用户与课程记录的关系决定的,并不依赖于SharePoint中的角色。
在指派创建过程中发生的验证主要包括:
- 对于自指派,用户须有对应指派内容的访问权限,但不要求具有SPWeb上的指导员或学习者权限。
- 对于标准指派,指派创建者必须具有对应指派内容的访问权限,并且必须是SPWeb上的指导员角色。SLK会在创建指派时验证。
当验证时,当前用户可能是直接具有权限,也可能是作为某SharePoint组成员具有权限,或作为域组成员具有权限。需要注意的是域组本身可能作为某个SharePoint组成员具有权限。
在被指派时,学习者和指导员不要求具有学习者和指导员权限,但是,该权限用于在指派创建UI中列出潜在的学习者和指导员。换句话说,当通过SLK API来为一组学习者创建指派时,SLK 会验证指派创建者是一个指导员,但不会检查该指派对应的学习者和指导员的角色。
当指派创建时,SLK检查所有分配有学习者角色的用户和组,将他们列于创建/修改页面。指派创建者能够选择某个用户或组作为该指派对应的学习者。SLK直接指派给独立用户与通过组来选择用户是有区别的。值得注意的是,SLK只会为单独的用户分配课程。在SLK架构中并不维护组中的用户。SLK使用SharePoint组来在创建/修改指派的页面中选择一个个单独的用户。在页面中选择一个组实际上并不会将指派挂到该组,而是相当于在那个时间点上对组中所有的用户进行了一个指派。换句话说,如果一个用户被添加到一个SharePoint组,该用户将不会在任何指派中被当作一个潜在的学习者对象来被分配或取消分配。如果想要在该页面中可以指派到该用户,必须为其进行新的角色指派。然后指导员在对该课程的指派进行修改时才能选择到该用户,也就是说此时他才会显示在潜在学习者列表中。