当isAuthorized = false时,用户被重定向到’/’有没有办法改变它.我想重定向到用户仪表板(/ users / dashboard),并显示一条闪烁消息,说“禁止访问”或类似内容.
干杯!
public function isAuthorized($user) {
if (isset($user['role']) && $user['role'] === 'admin') {
return true; //Admin can access every action
}
return false; // The rest don't
}
最佳答案 如果您的isAuthorised变量正在您的控制器中进行评估.
您可以调用重定向功能.
$this->redirect(array('controller' => 'users', 'action' => 'dashboard'));
如果你实际上已经在用户控制器内,那就打电话
$this->redirect(array('action' => 'dashboard'));
如果没有,你在哪里查看isAuthorised值?
这不是一个理想的解决方案.但是,使用当前内置的AuthComponent似乎无法做到这一点
编辑:添加代码作为示例.
public function isAuthorized($user) {
if (parent::isAuthorized($user)) {
return true;
}
// Authorised actions
if (in_array($this->action, array('dashboard'))) {
return true;
}
// Will break out on this call
$this->redirect(array('controller' => 'users', 'action' => 'dashboard'));
return false;
}