?
class="MsoNormal">权限管理几乎是每个后台管理系统必有的一个功能,由于每个公司组织结构不同,权限管理的需求也有所不同。
?
在工作中,权限一般分为功能权限,操作权限,及数据权限。
?
对于功能级别的权限,一般可理解为3W,即Who对What(Which)进行How的操作,
?
其中who即为权限的主体或者拥有者(如用户,角色),what受权限控制的对象或资源(如菜单,操作按钮等),how具体权限(授权)。
?
在企业环境访问控制方法中,大致可分为如下三种:
?
1、? 自主访问控制:主体可以对其资源怎么自主的控制;
?
2、? 强制访问控制:用于多层次多级别的控制(不是很理解);
?
3、? 基于角色的访问控制(RBAC):如今用的比较多的方法,可以减少授权管理的复杂度,降低管理成本,比较灵活。
?
此次我们只讲解基于角色的访问控制。基于角色的访问控制,抽取出角色的概念,用来对权限进行归类。再把角色分配给相应的用户,达到权限的授权。
?
从中抽取系统用户为主体,资源有菜单资源与操作资源,通过基于角色进行权限的设置,因为其UML图大概可以如下:
?
?
?
其中主要涉及到后台用户、角色、后台功能菜单、操作按钮,用户只是单纯的用户,没有与权限进行直接关联,而是通过分配角色来达到权限的授权,一个用户以拥有多个角色,一个角色也可以属于多个用户,因此用户与角色间是多对多关联,所以抽取出用户角色关联信息,把它转换成两个多对一关联。
?
角色是为了对权限进行分组的,而此中的权限即对某某菜单有什么样的操作权限。角色可以拥有多个功能,而功能也可以属于多个角色,因此,抽取出角色权限关联信息。
?
具体实现如下图:
?
?
?
?
?
?
?