ThinkPHP中RBAC权限控制求助
2个回答
展开全部
权限配置文件:
//超级管理员
'RBAC_SUPERADMIN' => 'admin', //超级管理名称
'ADMIN_AUTH_KEY' => 'superadmin', //超级管理识别
'USER_AUTH_ON' => true, //开启验证
'USER_AUTH_TYPE' => 1, //验证类型(1登录验证,2实时验证)
'USER_AUTH_KEY' => 'uid', //用户认证识别号
'NOT_AUTH_MODULE' => 'User', //不验证的控制器
'NOT_AUTH_ACTION' => '',//不验证的action
'RBAC_ROLE_TABLE' => 'lx_role', //角色表名称
'RBAC_USER_TABLE' => 'lx_role_user', //用户关联表
'RBAC_ACCESS_TABLE' => 'lx_access', //权限表
'RBAC_NODE_TABLE' => 'lx_node', //节点表
复制代码
test用户给的权限:
Index控制器的index方法允许
Baoji控制器的所有方法允许访问
但当我登录该用户点击baoji控制器下的remark时 报无权限 求高手提点提点....
import('ORG.Util.RBAC');
RBAC::saveAccessList();
p($_SESSION);
复制代码
下面是结果
Array
(
[verify] => 20c1945eae4b9868cbbfd09675f7d76e
[uid] => 5
[username] => test
[last_login_time] => 1376992491
[last_login_ip] => 127.0.0.1
[_ACCESS_LIST] => Array
(
[DEFAULT] => Array
(
[INDEX] => Array
(
[INDEX] => 31
)
[BAOJI] => Array
(
[INDEX] => 40
[REMARK] => 41
[VIEW] => 42
[SUBMIT] => 43
)
)
)
)
复制代码
这是权限判断的代码
$notAuth=in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE'))) ||
in_array(ACTION_NAME, explode(',', C('NOT_AUTH_ACTION')));
if(C('USER_AUTH_ON') and !$notAuth){
import('ORG.Util.RBAC');
RBAC::AccessDecision()||$this->error('没有权限');
}
//超级管理员
'RBAC_SUPERADMIN' => 'admin', //超级管理名称
'ADMIN_AUTH_KEY' => 'superadmin', //超级管理识别
'USER_AUTH_ON' => true, //开启验证
'USER_AUTH_TYPE' => 1, //验证类型(1登录验证,2实时验证)
'USER_AUTH_KEY' => 'uid', //用户认证识别号
'NOT_AUTH_MODULE' => 'User', //不验证的控制器
'NOT_AUTH_ACTION' => '',//不验证的action
'RBAC_ROLE_TABLE' => 'lx_role', //角色表名称
'RBAC_USER_TABLE' => 'lx_role_user', //用户关联表
'RBAC_ACCESS_TABLE' => 'lx_access', //权限表
'RBAC_NODE_TABLE' => 'lx_node', //节点表
复制代码
test用户给的权限:
Index控制器的index方法允许
Baoji控制器的所有方法允许访问
但当我登录该用户点击baoji控制器下的remark时 报无权限 求高手提点提点....
import('ORG.Util.RBAC');
RBAC::saveAccessList();
p($_SESSION);
复制代码
下面是结果
Array
(
[verify] => 20c1945eae4b9868cbbfd09675f7d76e
[uid] => 5
[username] => test
[last_login_time] => 1376992491
[last_login_ip] => 127.0.0.1
[_ACCESS_LIST] => Array
(
[DEFAULT] => Array
(
[INDEX] => Array
(
[INDEX] => 31
)
[BAOJI] => Array
(
[INDEX] => 40
[REMARK] => 41
[VIEW] => 42
[SUBMIT] => 43
)
)
)
)
复制代码
这是权限判断的代码
$notAuth=in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE'))) ||
in_array(ACTION_NAME, explode(',', C('NOT_AUTH_ACTION')));
if(C('USER_AUTH_ON') and !$notAuth){
import('ORG.Util.RBAC');
RBAC::AccessDecision()||$this->error('没有权限');
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询