权限的继承与分组
根据权限管理实际情况,需要分组的主要是用户和角色,依次是用户组、角色组。比如某员工在同一组织下从A组换到B组,如果有用户组的话可以直接调整其所属用户组即可达到权限变更的目的。再比如某员工职位或职级调整后,只需要相应的调整其所属角色或角色组即可达到权限变更的目的。结构示意如下:
角色的继承可以分为单继承和多继承。单继承就像是面向对象中的继承,下级角色获得上级角色的所有可继承的许可(有时可能需要指定某些不适用于下级的许可不能被继承),多用在需要扩展某个角色的情形下。多继承指的是同一个角色可以同时继承多个上级角色,下级角色获得所有上级角色(适用于下级)的许可,多用在需要同时拥有其它角色许可的情况下。角色组同。结构示意如下:
互斥校验:多发生在角色继承和分组时,以及给用户授予角色或角色组时。例如,在做角色继承或分组时需要考虑“裁判”和“运动员”不能同属一个角色组,不能相互继承,在为某个具有“裁判”角色的用户授权时,不能授予其“运动员”角色。
将用户组与角色组以及角色之间的继承应用于前文所述的权限管理中之后,复杂度会变得非常高,再加上角色互斥校验使其变得更加难解。一般情况下,如果不是特别需要大部分不必同时实现。当然,如果是IDaaS就另当别论了。