ThroughoutCMS技术共享系列(3):三维的权限抽象模型-PK访问控制设计的软件实现

来源:互联网 发布:淘宝国产手办店铺 编辑:程序博客网 时间:2024/04/28 07:11

       基于角色的权限模型包括以下元素:

1)部门(组织,用户组也作为一种特殊的部门)。

       一组用户的集合,具有统一的角色和数据范围,例如仿真数据库中的设计部门。部门没有独立的登录帐号和登录口令,不记录日志信息。部门是一个树状结构(Tree),各个节点分别代表了独立的部门,部门同时也是用户的宿主,部门和用户是多对多的数据关系,用户和部门形成统一的用户体系。

2)用户,个体用户的账户信息。

作为一个独立的操作人员,有其独立的登录帐号和登录口令,其在系统中的活动将会被记录到日志系统,用户通过角色来获取可用操作许可列表,用户通过数据范围获取可用访问资源。用户分为系统用户(处理业务的用户)和访问用户(访问者或买家)两种类型,用户状态分为初始、可用、停用、删除等不同的状态。

3)角色:一组功能列表。

角色充当用户(部门)和功能之间的桥梁,用户获取某些操作许可必须通过特定的角色来获取,而不能直接与功能交互。

4)功能(也指操作):某个特定系统操作。

       如创建、修改设计方案等,都是功能,功能也是一组树状结构(Tree),例如“设计数据管理”是一个大功能,同时“设计数据管理——>创建设计方案”又是一个子功能。系统中所有纳入访问控制体系的权限用户操作都可以注册到系统中来,统一管理。功能根据操作区域的不同,可以分为多种类型:控件功能(一个页面中的某个控件)、页面功能(页面是否被允许访问)、模块功能(特定的模块是否被支持访问);功能根据操作区域的不同,可以分为以下类型:用户自维护功能(例如我的工作台-口令维护)、系统业务功能(例如设计人员)、工作流程功能(例如定义工作流步骤的操作)。角色和功能形成了系统访问控制的模块功能体系。

5)数据范围(也称资源),系统访问客体。

在访问控制中意味着当用户具有一定操作功能的时候,能操作哪些数据,例如用户允许生成报表功能,但是那些报表允许此用户生成的问题。数据范围依附于特定的操作功能,数据范围可以是数据集合或者数据范围规则(条件),数据范围也形成了访问控制中的访问资源体系。

       归纳起来,用户访问控制可以有以下要素构成:

       用户访问控制=用户体系(主)+模块功能体系(谓)+访问资源体系(宾);

       形成了三维的权限抽象模型,如下所示: