码迷,mamicode.com
首页 > 其他好文 > 详细

20150404--RBAC+管路员权限-01

时间:2016-05-08 22:29:34      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

目录

一、权限管理设置 1

1、删除权限 1

二、角色管理 2

1、添加角色, 2

2、角色列表 5

3、角色删除 6

三、管理员管理 6

2、管理员列表, 9

3、修改管理员 9

五、模型管理 12

六、栏目管理 13

七、内容管理 13

一、权限管理设置

1、删除权限

在删除权限时,如果有子权限则不能删除。在删除之前要判断一下是否有子权限。

(1)在模型中定义一个方法,用于验证是否子权限。

技术分享

(2)在privilege控制器 里面添加一个delete的方法。用于删除权限

技术分享

二、角色管理

1、添加角色,

在添加角色时,要给当前角色分配权限,就涉及到两张表,

一个是it_role表(字段:角色名称),一个表是it_role_privilege(角色的id和权限的id)

(1)新建一个角色控制器,并添加add方法,并拷贝对应的模板页面,并修改样式图片的路径。

技术分享

技术分享

(2)添加一个js事件,当选择子权限的时候,则上级权限一块被选中。

技术分享

(3)新建一个role模型,里面添加数据验证,

技术分享

(4)在角色模型里面添加一个钩子函数_after_insert(),由该函数完成入库it_role_privilege表

技术分享

(5)修改,添加角色的方法

技术分享

2、角色列表

(1)新建一个lst方法,并拷贝对应的静态页面,并修改样式和图片的路径

要求:把角色的名称,角色对应权限的名称也给列出来。

思考:权限名称所在的表,角色名称所在的表,角色和权限的中间表

select    from it_role a  left join it_role_privilege b on a.id=b.role_id  left join it_privilege c on c.id=b.pri_id

技术分享

group_concat(字段名称)把查询到的字段,拼接成以逗号隔开的字符串。

技术分享

在静态页面中进行遍历:

技术分享

3、角色删除

要求:

(1)在删除角色的时候,要清空it_role_privilege表里面的角色id对应权限id

(2)如果有管理员属于该角色则不能删除该角色。

在角色的模型里面添加一个_after_delete($data,$options)方法。

要删除it_role_privile表里面角色对应权限的id

技术分享

20150404--RBAC+管路员权限-01

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5471871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!