信息系统开发平台OpenExpressApp - 用户权限模块设计

       管理型软件不同于工具型软件,它涉及到多人协同操作,所以用户权限管理是必备的功能之一。本篇讲介绍一下OpenExpressApp的用户权限模块的大体应用思路,后续将会实现为框架的内置提供模块。

     现在很多系统都是采用RBAC(Role-based_access_control)来作为权限系统的设计参考,OpenExpressApp也准备参考它来设计权限子系统,所以下面我先简单介绍一下RBAC的内容,如果熟悉的可以略过这一小节。

Core RBAC

     IT业界在2000年基于Ravi Sandhu等人提出Role-based抽象模型基础上形成了RBAC模型标准草案,这个草案实质是建立一套基于角色授权的模型标准

。RBAC标准包括两部分:RBAC参考模型和RBAC功能描述。RBAC参考模型定义了RBAC的基本语义和基本元素集合,并通过集合论给出了一套RBAC数学模型,RBAC功能描述定义了RBAC系统必须的特性。

     下面为RBAC的核心参考模型示意图:对象主体(OBS)和操作主体(OPS)的许可权限(Permission)直接赋予角色(Role),用户(User)通过与Role的关系实现权限的授予,具体介绍可以参考an_introduction_to_rbac

Core RBAC

RBAC实现参考

RBAC实现

参见an_introduction_to_rbac

组织机构相关的RBAC模型的变体

      在企业级应用时除了角色外,组织机构仍然是一个十分重要的维度,如何将角色与组织机构连接起来,是我们着重考虑的问题。因此结合组织机构和RBAC模型,衍生了与组织机构相关的RBAC模型的变体,如下图所示:部门+岗位=角色:岗位不能直接授权,只有与部门挂接后才能形成角色

Core RBAC 2

模块设计

部门管理(组织机构)

部门管理

       组织机构是企业的管理体系,企业的所有经营行为都要通过组织机构发挥作用。岗位只有处于特定的组织下才能发挥作用,此时形成角色。组织机构中节点成为部门,部门下挂接岗位,岗位与具体人员相关。

权限设置

权限设置

      该模块只有系统管理员(包括部门级系统管理员)可以操作,设置部门+岗位下的各个模块的功能权限数据权限

功能权限:显示模块类别下的所有Command,控制到所有界面可以看到的工具条按钮和右键菜单

数据权限:数据权限包含整个模块是否允许查看(模块打开功能)、单条记录是否允许访问(记录查看权限)和记录属性可见(字段级别权限)。这块还没有想得很清楚,目前先控制数据记录级别的权限,指定可以查看到哪些记录。

注:目前不考虑上下级隶属关系、权限下发等等复杂组织机构功能

 

更多内容: 开源信息系统开发平台之OpenExpressApp框架.pdf

posted on 2009-12-12 10:30  周 金根  阅读(6467)  评论(13编辑  收藏

导航