管理员后台权限的设计和配置
一、设计
在PRolePermissionAction表中通过当前用户所具有的角ID到用户所对应的角所具有的操作权限列表,通过当前所请求的页面的URL在用户的角所对应的操作权限列表中是否存在,来判断当前用户对该页面所具有的权限,该方法控制到页面级是完全可以的但是要想具体到操作级别除非页面的Action跟页面不是同一个页面才可以(此设计的不足之处在于要想控制到操作级别Action和Page不能是同一个页面,还有就是每个菜单必须首先要配一个浏览的操作)。
管理员后台跟权限有关的表有以下几个:
3. PModule:模块表(此表需要手动去维护,左侧的菜单来源于这个表,每新增加一个模块,需要把模块的信息维护到这个表中)
4. PermissionAction:模块操作表(每个模块下的操作的拆分,此表需要手动维护,每新增加一个模块,需要把模块下的所有操作拆分开来,然漂友会360lifer后维护到这个表中,以便角管理时给对应的角分配相应的操作权限)
5. PRolePermissionAction:角权限表(给每个角分配不同的操作权限,这个表通过角管理来维护)
二、配置(拿公共类管理里的角管理举例)
1.在PModule中手动维护角管理的信息如下图:
目前只支持到三级菜单,父级菜单无需配置ModuleUrl,最后一级菜单才需要ModuleUrl。配置好后左侧菜单就会出现角管理那一项。如果是超级管理员的话就可以访问角管理的页面了。
2.将角管理页面上的操作拆分,并维护PermissionAction表,如下图:
每一个的菜单所对应的页面,必须配置一个浏览操作,如果不配置的话普通管理员是访问不了该页面的,如上图所示将角管理拆分出来了三个操作,配置完后角管理的添加和修改操作中就可以看到刚才配置的信息了,如下图:
2.给相应的角配置角管理的操作权限:选中需要的操作,点确定即可,这样就在
PRolePermissionAction表中保存了该角所具有的操作权限了。到此为止配置方面的工作就完成了。用户退出系统重新登录,配置的权限即可生效。
三、关系图
AdministratorInfo
ID UserLevel UserName RealName Mobile
Tel Remark CreateDate CityIDs CityNames RoleID GroupID Status IsDel <pi>
取得管理员权限<fi>
Integer
Varchar
Integer
Varchar
Varchar
Varchar
Varchar
Date
Varchar
Varchar
Integer
Integer
Integer
Integer
<M>
<M>
PK_ID<pi>
PRole
ID
RoleName
IsDel
<pi>Integer
Varchar
Integer
<M>
PK_ID
...
<pi>
PModule
ModuleID ModuleName RootID ModuleLevel GroupID IsDel SortID UrlDomain ModuleUrl <pi>Integer
Varchar
Integer
Integer
Integer
Integer
Integer
Integer
Varchar
<M>
PK_ModuleID ...<pi>
PermissionAction
ID
ActionName
ActionUrl
ModuleID
ShowType
ActionType
DynamicParse
StaticParse
IsNeedBack
IsDel
Remark
ShowPos
SortID
PermissionName
<pi>
<fi>
Integer
Varchar
Varchar
Integer
Integer
Varchar
Varchar
Varchar
Varchar
Integer
Varchar
Varchar
Integer
Varchar
<M>
PK_ID
...
<pi>
PRolePermissionAction
ID
ModuleID
ActionID
<fi1>
<fi2>
<fi3>
Integer
Integer
Integer
<M>
<M>
PK_RoleID_ActionID
.
..
<pi>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论