权限设计--role之间应该存在继承关系吗?

03-11-20 艾云
如题,大家认为好吗?

iceant
2003-11-20 23:12
不好~~ 最好不要~~ 如果有要 hierarchy, 也最好控制在两层以内

banq
2003-11-22 15:59
其实,什么都可以有,问题是复杂性,角色有了继承关系,就太复杂了。

anonymous
2003-11-24 10:16
不应该,

组已经有继承关系了,如果角色再有继承关系,如板桥说的,复杂度会非常高

试想,一个用户的权限你得遍历其所在组(所有组包括各自的父组),从这些组中遍历角色(包括所有的角色及其父角色).........从性能上说也不好:)

角色应该是非常独立的,这样在角色分配的时候会非常方便,如果有继承,则当你把某一角色赋给某个人时你不得不去查看其所有父角色的权限,而且很容易引其不必要的权限赋予。。。。。:)

furarmy
2003-12-04 13:26
最近也在考虑这个问题,的确查询和修改时都很复杂。

感觉就继承关系本身而言,我们不能限定对于不对,有时候可能是需求。所以我想,如果要解决这个复杂度,关键还在于弄清楚继承关系究竟是否应该存在于“角色”这种对象上。如果有个“岗位”的概念,专门用来体现上下级关系,这时的关系就可以是多层的了,而角色仅仅只是一堆权限的集合。角色应该被赋予岗位,这样应该更符合实际情况一些。

crogers
2003-12-04 23:46
嗯,然后功能权限完了

再补上数据权限,如客户经理可以管理自己的客户

可以查看其下级的客户经理所管理客户的资料

这是比较正常的

现在我对门在设计更变态的,多个客户经理可以管理多个客户

需求快,比摩尔定律还快啊....~~~

loreal
2004-01-08 11:39
我认为角色间的继承关系在某些情况下还是有必要的:

1)可以减少管理员的授权管理工作

2)其实复杂度也不见得太高,看你怎么设计了,就像win2000下的对目录的访问控制,目录不是一样可以有若干层吗?目录间也同样是有继承关系的啊。

3)如果没有继承关系,好多授权和访问控制没法实现,或实现起来太复杂,比如:请假单只能先由请假人的小组长审批,再由大组长审批,最后由主任审批。

猜你喜欢