首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

组织结构与权限模型设计(3)

2012-08-27 
组织结构与权限模型设计(三)前言上篇文章组织结构与权限模型设计(一)和组织结构与权限模型设计(二)中,介绍

组织结构与权限模型设计(三)

前言

上篇文章组织结构与权限模型设计(一)和组织结构与权限模型设计(二)中,介绍了权限模型的两种实现方案。方案一将操作功能和数据范围在一个维度,用角色的权限描述,方案二将操作功能和数据范围分成两个维度,分别用角色的权限和职位描述。方案一的优点是,配置简单,用户在一个地方把权限配置好就行了;方案二的优点是,清晰易扩展(操作功能和数据范围分别扩展,不用做乘法)。

?

方案三

基于以上分析,方案三就是把前面两种方案结合了一下:权限依然是分为操作功能和数据范围两个维度,但是两个维度都在角色中定义。

还是以查看工作日志这个功能为例:

按方案三实现的话,系统中会有一个权限项,叫查看工作日志(操作功能),至于查看谁的工作日志(数据范围),我们还是用方案二中的power定义,它有两个选择:Manager或Member。将这个语义属性附加到角色上,标识为Manager的角色能查看整个部门的工作日志,标识为Member的角色只能查看自己的工作日志。将权限项和power属性赋给一个角色,再将这个角色赋给用户,用户就具备了相关的日志权限。

?

总结

方案三综合了前面两个方案的优点,既能让用户在一个面板中定义权限,又能从两个维度对权限进行描述。方案三是经过反复讨论,最终决定在我们产品中采用的权限模型,是否好用还需用户的验证。

1 楼 george 2011-03-23   你的方案三,其实不用把is_manager属性加在role上,只要再加一个角色分类表,定义角色是数据系统角色、部门角色还是自定义角色就可以了,定义为部门角色的角色,在用户所在的部门中才能拥有自己角色所拥有的所有权限,也就是实现了“数据范围”维度的控制。

热点排行