我想创建一个管理员和用户都可以的页面,但是在页面的一侧只有管理员可以查看它,另一方面,用户和管理员都可以查看它。
我用这段代码尝试了它
$this->Auth->user(['role']['admin']);
这是我的控制器中的函数
中的代码这是我的观看代码
if ($this->request->session()->read('Auth.User.role.admin')){
我想要实现的是auth组件检查用户的角色,如果是admin,它应该显示对用户隐藏的页面部分。
这是我得到的错误
注意(8):未定义的索引:admin [APP / Controller \ BestellenController.php,第17行]
答案 0 :(得分:1)
您可以更好地处理来自AppController的操作授权。
在AppController中执行以下操作:
public function isAuthorized($user) {
$action = $this->request->params['action']; // request action
if($action == "test") {
if($user['role'] == 'admin'){
return true;
} else {
// this page is for admin only
echo 'You are not authorized to access the page.';
// redirect('Somewhere');
}
}
}
上述功能只是让管理员可以访问“测试”操作。如果你想为任何控制器的任何动作做同样的事情,也可以在那里检查控制器。
如果您希望某些部分视图只能访问某个角色,那么:
$role = $this->request->session()->read('Auth.User.role');
if($role == "admin") {
// this is for admin
} else {
// this is for other
}
我希望你在用户表中有角色字段。