2015-12-18 21:17:46
连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制。
相关代码如下:
数据库
用户表(管理员)
mg_id | mg_name | mg_pwd | mg_time | mg_role_id |
---|---|---|---|---|
0 | creatint | 123 | 2587413547 | 1 |
1 | yotaku | 123 | 258744984 | 4 |
1 2 3 4 5 6 7 8 |
|
权限表
auth_id(权限ID) | auth_name(权限名称) | auth_pid(父id) | auth_c(控制器) | auth_a(操作方法) | auth_path(全路径) | auth_level(权限级别) |
---|---|---|---|---|---|---|
100 | 产品中心 | 0 | '' | '' | 100 | 0 |
101 | 产品展示 | 100 | ManagerController | show | 100-101 | 1 |
1 2 3 4 5 6 7 8 9 10 |
|
角色表
role_id | role_name | role_auth_ids | role_auth_ac |
---|---|---|---|
0 | 站主 | 1,3,9 | 操作器-控制器,操作器-控制器,... |
1 | 高级管理员 | 1,2,3,9,12 | 操作器-控制器,操作器-控制器,... |
1 2 3 4 5 6 7 |
|
数据模拟:
1.权限数据
产品中心(产品展示,最新产品,分类管理,子类管理) 高级管理(用户留言,留言簿,产品订购,文件管理) 系统管理(基本设置,样式管理,首页设置,管理员列表)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
2.角色数据
sw_role 站主 所有权限(103,104,105,106,107,108,109) 管理员 部分权限(104,105,109) 版主 部分权限(103,108)
1 2 3 4 |
|
3.流程说明
Index控制器内 获取用户的角色id,进而获得角色权限 进行判断是否展现数据 Index控制器--->left方法--->left.html模板 Index控制器
//(1)根据用户id获取本身记录信息1 |
|
1 2 |
|
1 2 |
|
1 |
|
1 |
|
1 2 |
|
1 2 |
|
4.模板 left.html
{foreach $auth_infoA as $k=>$v}background={$smarty.const.ADMIN_IMG_URL}/menu_bt.jpg >{$v.auth_id}) href="javascript:void(0);">{$v.auth_name} |
![]() | {$v2.auth_name} |