组已经有继承关系了,如果角色再有继承关系,如板桥说的,复杂度会非常高
试想,一个用户的权限你得遍历其所在组(所有组包括各自的父组),从这些组中遍历角色(包括所有的角色及其父角色).........从性能上说也不好:)
角色应该是非常独立的,这样在角色分配的时候会非常方便,如果有继承,则当你把某一角色赋给某个人时你不得不去查看其所有父角色的权限,而且很容易引其不必要的权限赋予。。。。。:)
感觉就继承关系本身而言,我们不能限定对于不对,有时候可能是需求。所以我想,如果要解决这个复杂度,关键还在于弄清楚继承关系究竟是否应该存在于“角色”这种对象上。如果有个“岗位”的概念,专门用来体现上下级关系,这时的关系就可以是多层的了,而角色仅仅只是一堆权限的集合。角色应该被赋予岗位,这样应该更符合实际情况一些。
再补上数据权限,如客户经理可以管理自己的客户
可以查看其下级的客户经理所管理客户的资料
这是比较正常的
现在我对门在设计更变态的,多个客户经理可以管理多个客户
需求快,比摩尔定律还快啊....~~~
1)可以减少管理员的授权管理工作
2)其实复杂度也不见得太高,看你怎么设计了,就像win2000下的对目录的访问控制,目录不是一样可以有若干层吗?目录间也同样是有继承关系的啊。
3)如果没有继承关系,好多授权和访问控制没法实现,或实现起来太复杂,比如:请假单只能先由请假人的小组长审批,再由大组长审批,最后由主任审批。