一个权限管理模块的设计

一个用户权限管理模块的设计思路:

1. 权限资源(功能资源)

系统的所有权限信息。权限具有上下级关系,是一个树状的结构。如下:

<!--[if !supportLists]-->u  <!--[endif]-->系统管理

<!--[if !supportLists]-->l  <!--[endif]-->单位管理

<!--[if !supportLists]-->u  <!--[endif]-->查看单位

<!--[if !supportLists]-->u  <!--[endif]-->添加单位

<!--[if !supportLists]-->u  <!--[endif]-->修改单位

<!--[if !supportLists]-->u  <!--[endif]-->删除单位

<!--[if !supportLists]-->l  <!--[endif]-->部门管理

<!--[if !supportLists]-->u  <!--[endif]-->查看部门

<!--[if !supportLists]-->u  <!--[endif]-->添加部门

<!--[if !supportLists]-->u  <!--[endif]-->修改单位

<!--[if !supportLists]-->u  <!--[endif]-->删除单位

 

对于每个权限,又存在两种情况:1可访问;2可授权,部分表中采用拥有类型做判断(0可访问,1即可访问也可授权)

 

2. 用户

系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n个组。他的权限集是自身具有的权限+所属的各角色具有的权限+所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。

 

3. 角色

为了对拥有相似权限的用户进行分类管理,因此定义角色,例如:超级管理员,一般管理员、一般用户等角色。在这里同时也让角色具有上下级关系,形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。

 

4.

为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际应用中,我们知道,组也可以具有自己的角色信息、权限信息。

就好比是javaeye中的圈子,一个圈子可以拥有多个会员,同时一个会员也可以加入多个圈子,对于不同的圈子又有不同的权限信息。(组的解释:例如一个公司中,不同的部门即可划分不同的组来进行权限的分配)

 

针对以上描述,结构关系如下:

 

 

整个模块分为组权限管理、角色权限管理、用户权限管理。

其中组权限管理:组权限 = 所属角色的权限合集 + 组自身的权限。

角色权限管理:角色权限 = 角色自身权限。

用户权限管理:用户权限 = 所属角色权限合集 + 所属组权限合集 + 用户自身权限。

 

注意:因为组和角色都具有上下级关系,所以下级的组或角色的权限只能在自己的直属上级的权限中选择,下级的组或者角色的总的权限都不能大于直属上级的总权限。

 

欢迎大家拍砖,给点建议。

  • 大小: 50.4 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值