知识库 : WebServer模型数据权限

在WebServer中,涉及到的权限有两种,即浏览权限和编辑权限。任何一种模型都可以对其赋予浏览权限和编辑权限。在授予权限时,涉及到三种内容,模型、用户和用户组。权限是被授予在模型上的,被授予者是用户或者用户组。用户是可以登录到系统中的实体,它可以属于一个或者多个用户组,一个用户组也可以包含一个或者多个用户。用户本身带有一个角色信息,目前角色有三种,管理员、设计者和浏览者。设计者和管理员有浏览和编辑权限,浏览者只有浏览权限。如下图1所示,为系统中权限的设置界面。

图1 模型的授权界面

在模型的授权界面中,主要分为上下两个部分,上面表格能够为用户和用户组添加权限,并能够修改权限的值;下面表格部分能够查看最终用户针对本模型的权限。如果用户点击上表格中的用户,那么下面表格中显示本用户对本模型的权限,如果用户点击上表格中的用户组,那么下表格中显示该用户组中的所有用户对本模型的权限值。

在最终权限的计算,遵循以下内容:

1. 模型没有设置任何自定义权限规则时,模型的控制权限取当前登录用户绑定的角色权限。

2. 模型设置自定义权限规则时,首先按照设置的N条自定义权限规则,计算出该模型对于该用户的自定义规则,模型的控制权限取计算后的自定义权限和角色权限的交集。

3. 模型自定义权限授予用户和用户组。

4. 模型M对用户组1、2…N设置了不同的自定义权限,而用户U同时属于用户组1、2…N,则模型M对于用户U的自定义权限取用户组1、2…N的权限并集,算法见7条。

5. 模型M对用户U和用户组G设置了不同的自定义权限,用户U属于用户组G,则模型M对于用户U的自定义权限取对用户U设置的自定义权限规则,而忽略对用户U所属的用户组G设置的自定义权限规则。

6. 在操作(包括编辑、删除)父模型时,忽略其子模型的权限。比如,用户U对于分组WG的权限是可设计,对于分组WG下的工作流W的权限是可浏览,则用户U可以编辑、删除分组WG,在删除分组WG时,会同时删除分组WG下的工作流W。而如果用户U单独操作工作流W,仍然是可浏览的权限。

7. 授予用户/用户组对于某个模型的权限时,值类型有三种:允许、无、拒绝。当根据多条自定义权限计算规则时,包含“拒绝”时,最终权限规则为“拒绝”,包含“允许”并且不包含“拒绝”时,最终权限规则为“允许”,既不包含“允许”也不包含“拒绝”时,最终权限规则为“拒绝”。所以最终权限规则只有两种情况:允许和拒绝。

8. 模型创建后对所有用户的默认权限是“可浏览”、“可设计”,如果父模型设置了自定义权限,则继承父模型权限。

9. 父模型的权限会自动传递到子模型上。

Attachments: