权限和访问控制模块

2018-06-11  本文已影响33人  JSON_NULL

名词解释

各级用户:系统可能具有多级用户,也就是说用户可能具有上下级关系。

访问权限:当用户访问一个资源时或对一个资源进行查看和修改操作时,用于判断用户是否有权进行此操作。

资源的可见性:用于定义一个资源可以被哪些用户看到。只有在用户“可见”的情况下才可进行某些操作。

公开等级:用户的资源可以设置公开,或不公开,从而控制资源可以被哪些人看到。

问题定义

在对“权限和访问控制模块”进行分析时,可把系统中的所有对象分为两部分:

  1. 主体:系统的使用者,主动向系统发出操作指令的对象,也就是系统的用户。
  2. 客体:系统中被主体所操作的资源,接受主体操作指令而发生状态改变的对象。

其实在某此场景下主体也可能成为客体。例如在“系统管理员”对系统中用户进行管理时,在其他场景下作为主体而存在的系统用户,在此场景下就是作为客体而存在的。

在权限和访问控制模块中,需要定义好客体对主体的可见性,以及主体对客户的访问权限。

综上,权限和访问控制模块要解决的问题如下:

  1. 定义资源的可见性;
  2. 定义用户对资源的访问权限。

功能设计

实现五种资源公开等级

  1. 私有:仅自己可见
  2. 内部:仅自己和上级可见
  3. 外部:仅自己和下级可见
  4. 同级:仅自己和同一上级的平级可见
  5. 公开:全部可见

其中“私有”和“公开”两个权限是排它的;“内部”、“外部”和“同级”三个权限可多选。

资源的公开等级用于定义资源的可见性。

实现四种用户访问权限

  1. 列表读取权限
  2. 内容读取权限
  3. 内容读写权限
  4. 递归读写权限

以上四种访问权限中凡是靠下面的访问权限都将包含其上面的所有访问权限。也就是说拥有访问权限(4)则同时会访问权限(1)、(2)、(3)。

用户的访问权限用于定义用户对资源的访问权限。

列表读取权限

只能读取自己“可见”的资源列表。无法查看资源的详细内容。

内容读取权限

能够读取自己“可见”的资源列表;并且凡是列表中的资源,都可查看其详细内容。但无法创建资源,也无法修改资源内容。

内容读写权限

能够读取自己“可见”的资源列表;并且凡是列表中的资源,都可查看其详细内容。可创建资源,可修改自己创建的资源内容。无法修改权限范围内非自己创建资源的内容。

递归读写权限

能够读取自己“可见”的资源列表;并且凡是列表中的资源,都可查看其详细内容。可创建资源,可修改自己创建的资源内容。并可修改权限范围内非自己创建资源的内容。

特权写功能

在一些特殊的情况下,可能需要下级用户修改上级用户的某个资源。在“五种公开等级”与“四种访问权限”组合后无法满足这个需求。所以需要一个“特权写”功能,让上级用户直接把某个资源授权给下级用户进行写操作。这时下级用户可通过一个特定的URL访问已经授权的资源,并对其进行修改。

上一篇 下一篇

猜你喜欢

热点阅读