不同角色显示不同的权限
就像表中设计的一样:
管理员表:
权限表:
中两个表中mg_role_id和role_id是对应的,这样就方便每个管理员对应一个权限;
public function left(){
$manager = M('manager')->find(session('mg_id'));
//在login中定义了个绘画session('mg_id',$rows['mg_id']); 方便知道是哪个管理员
$role = M('role')->find($manager['mg_role_id']); //mg_role_id是对应role表中的某个权限,一一对应起来
$auth_ids = $role['role_auth_ids']; //role_auth_ids表示拥有的所有权限的集合
if($manager['mg_role_id'] == 0){ //mg_role_id如果等于零就代表是最高权限
$info1 = M('auth')->where('auth_level = 0')->select();//选出所有的一级
$info2 = M('auth')->where('auth_level = 1')->select();//选出所有的二级
}else{
$info1 = M('auth')->where("auth_level = 0 and auth_id in ($auth_ids)")->select();
$info2 = M('auth')->where("auth_level = 1 and auth_id in ($auth_ids)")->select();
//选出在这个管理员应有的权限
}
$this->assign('info1',$info1);
$this->assign('info2',$info2);
$this->display();
}
上面一段代码就