rbac权限管理,所有用户均为管理员权限

浏览:688 发布日期:2014/07/08 分类:求助交流 关键字: 管理员,rbac,权限管理
// 配置文件增加设置
'RBAC_SUPERADMIN'=>'admin',//超级管理员名称,对应用户表中某一用户名
'ADMIN_AUTH_KEY'=>'superadmin',//超级管理员识别
'USER_AUTH_ON'=>true, //是否需要认证
'USER_AUTH_TYPE'=>1, //认证类型,1为登陆后认证,2为实时认证
'USER_AUTH_KEY'=>'authld', //认证识别号,可自己定义
//'REQUIRE_AUTH_MODULE'=> //需要认证模块
'NOT_AUTH_MODULE'=>'Login,Index', //无需认证模块
'NOT_AUTH_ACTION'=>'add', //无需认证操作
//'USER_AUTH_GATEWAY'=>'Login/doLogin' //认证网关,可以不用
//'RBAC_DB_DSN'=>'mysql://root:@localhost:3306/thinkphp', //数据库连接DSN
'RBAC_ROLE_TABLE'=>'tp_role', //角色表名称
'RBAC_USER_TABLE'=>'tp_role_user', //用户表名称
'RBAC_ACCESS_TABLE'=>'tp_access', //权限表名称
'RBAC_NODE_TABLE'=>'tp_node', //节点表名称
登陆后判断权限:
$username=$_POST['username'];
$password=$_POST['password'];
$code=$_POST['code'];
if($_SESSION['verify']!==md5($code)){
$this->error('验证码错误!');
}
$user=M('User');
$where['username']=$username;
$where['password']=$password;
$arr=$user->where($where)->find();
if($arr){
SESSION('username',$username);
SESSION(C('USER_AUTH_KEY'),$arr['id']);
if($_SESSION['username']==C('RBAC_SUPERADMIN'))
{
session(C('ADMIN_AUTH_KEY'),true);
}//RBAC
import('ORG.Util.RBAC');
RBAC::saveAccessList();
$this->redirect('Index/index');
}else{
$this->error('该用户不存在');
}
为什么所有用户登陆时,superadmin均为true呢?这样所有用户均为管理员权限,为什么啊?
最佳答案
评论( 相关
后面还有条评论,点击查看>>