我们正在使用 Auth 组件。我们目前能够阻止未登录的用户访问我们的“管理”页面 (adminhome.ctp)。但是我们无法弄清楚如何isAuthorized()
阻止非管理员也访问该页面。
在 AppController 内部:
public function beforeFilter() {
$this->Auth->allow('index', 'view', 'login', 'logout', 'display');
$this->Auth->authorize = array('Controller');
//$this->Auth->autoRedirect = false;
}
public function isAuthorized($user_id) {
$this->loadModel('User');
$user = $this->User->findById($this->Auth->user());
if ( $user['User']['role'] === 'admin') {
$this->Session->setFlash('isAuthorized');
return true;
}
$this->Session->setFlash('!isAuthorized');
return false;
}
这里是 PagesController 中的 beforeFilter():
function beforeFilter() {
$this->Auth->deny('adminhome');
}
我们做错了什么?