权限管理中角色间的继承关系有没有必要?

15-01-08 tianhandigeng

现在在做权限管理,参考的是RBAC模型,在这个模型中提到了角色间的继承关系,从它的那个图来角色与角色之间还是多对多的关系? 按照这样的原理,对于总经理和副总经理这两种角色来说,总经理拥有副总经理所有的权限,再加上自己特有的权限,如果角色之间存在继承关系的话,那么按照正向授权,总经理和副总经理的关系就是:

副总经理

----- 总经理

再加上角色和角色是多对多的关系,也就是说一个角色模型就是一个网状的结构,这样是不是太复杂了呢? 角色间的继承关系怎么样能够更好的处理,显示角色的时候怎么显示它们之间的关系呢?

现在对于这种角色间多对多,怎么显示都没怎么想清楚。

liangshan
2015-01-08 09:19

通用角色层次(多继承)比受限角色层次(单继承)更复杂,在内存中将整个角色集中的成员分层摆布的时候是通过解释形如(role1ID,role2ID),(role1ID,role3ID),(role3ID,role5ID)……这样的角色二元组完成的。虽然role是个引用对象,当多个子角色继承同一个父角色的时候它们指向的是同一个地址,这仅仅是为了避免存储多份并频繁的同步。当将它们都看作值时并拷贝到各自本地时咱们的系统还是树型的就不是图型的了(这个拷贝不是真拷贝而是由程序员在头脑中想象的拷贝)。

我也在想如何对通用角色层次进行展示的问题,我从visual studio组织的代码资源树上受到了启发:虽然内存中是引用,但是我们展示时展示的是值,是角色的名字(值),同一个名字可以出现在多出。


tianhandigeng
2015-01-08 14:16

@anycmd 你是说对于多重继承,我们展示的时候还是树形展示,同一个角色的名称可以出现在多处 是吧?

[该贴被tianhandigeng于2015-01-08 14:21修改过]

liangshan
2015-01-08 15:52

是的,是这个意思。