在cakephp 3的页面上只创建一个管理员部分

时间:2017-03-05 09:17:52

标签: php cakephp admin

我想创建一个管理员和用户都可以的页面,但是在页面的一侧只有管理员可以查看它,另一方面,用户和管理员都可以查看它。

我用这段代码尝试了它

$this->Auth->user(['role']['admin']);

这是我的控制器中的函数

中的代码

这是我的观看代码

if ($this->request->session()->read('Auth.User.role.admin')){

我想要实现的是auth组件检查用户的角色,如果是admin,它应该显示对用户隐藏的页面部分。

这是我得到的错误

注意(8):未定义的索引:admin [APP / Controller \ BestellenController.php,第17行]

1 个答案:

答案 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
}

我希望你在用户表中有角色字段。