关于权限系统的设计,我想到了一个类似树结构的权限设计方法
先排列出所有的权限列表,如:
S: 查询 A: 添加 U: 更新 D: 删除
对于权限树,每个结点表示一个权限组标识,每个叶表示一个权限
建立权限树,先从根结点开始,根结点代表最高权限组,继承父结点的子结点有2个属性,一个撤消的权限,一个是增加的权限,子结点先继承所有父结点的权限,再删除撤消属性中的权限,添加增加属性中的权限,就成了该权限组所具有的权限.
对于权限树所具有的操作是,添加子权限组,更改权限组属性,删除权限组(相关子结点一同删除,所以建议别做删除,在需要新的权限组的时候添加), 移动结点, 复制结点, 优化树(通过树遍历把重复,多余等结点屏蔽),提升用户权限(一个用户最高只能把另一用户提升到与自己相同的权限组),降低用户权限.
权限树列举: