ThinkPHP中RBAC权限控制求助

我勒个屮艸芔茻 发布于 2013/08/20 18:04
阅读 2K+
收藏 1

这段是根据官方rbac类中sql建表后配置的权限

这是配置:

//超级管理员
    '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('没有权限');
	}
加载中
返回顶部
顶部