Cakephp管理路由阻止常规用户

其中一个课程是CakePHP课程,有一个问题没有人能够回答,这是阻止用户访问某些内容(如管理页面)的一种方式。 我做的方式只是在View中使用PHP语句来表示某个index.ctp页面,如果该角色为= 1,那么将显示此HTML,否则显示其他HTML。 但这并不是马上就会。

因此,我设置了管理路由前缀,并重新烘焙了具有路由的MVC文件,但不知道如何阻止用户使用角色“1” - 意味着默认情况下访问管理员前缀页面。 也许我失去了一些东西......任何洞察力或教程都将是一个巨大的帮助。

应用控制器

class AppController extends Controller {
public $components = array('DebugKit.Toolbar', 'Session', 'Auth');

public function isAuthorized($user) {
        if (empty($this->request->params['prefix'])) {
            return true;
        }
        if($this->request->params['prefix'] == 'admin') {
            return ($user['role'] == '2');
        }
        return false;
}
public function beforeFilter() {
    $this - > set('logged_in', $this - > Auth - > loggedIn());
    $this - > set('current_user', $this - > Auth - > user());
}
}

该项目上传到https://github.com/DavidWGreeley/termmvc/tree/Testing


你必须告诉蛋糕它需要什么类型的授权

当您加载Auth组件时,必须通知Cake必须查看Controller::isAuthorized方法。 所以在你的AppController::initialize()方法中:

 $this->loadComponent('Auth', [
    'authorize' => [
        'Controller'
    ]
)
链接地址: http://www.djcxy.com/p/58833.html

上一篇: Cakephp admin routing Blocking Regular user

下一篇: CakePHP 3: Missing route error for route that exists