isAuthorized重定向URL cakephp

当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;
}
点赞