CakePHP授权基于角色重定向

时间:2013-08-28 22:53:00

标签: php cakephp

我正在尝试一种基于角色重定向用户的简单方法,并根据此设置访问权限。

例如,如果用户被暂停,我将其角色更改为“已暂停”。当该用户登录或访问任何页面时,我希望它重定向到一个页面,其中包含描述发生了什么以及如何取消挂起的信息。如果他们尝试访问任何其他控制器/操作,我希望它再次重定向到“暂停”页面。

这是我在AppController中的内容

 public function isAuthorized($user=null) {
    if (isset($user['role']) && $user['role'] === 'admin') {
        return true;
    }
    return false;
}

我可以添加这样的内容,但是对于暂停的方案,是否有自定义重定向和自定义Flash消息

public function isAuthorized($user=null) {

    if (isset($user['role']) && $user['role'] === 'admin') {
        return true;
    }
    elseif(isset($user['role']) && $user['role'] === 'suspended'){
                 return false; //but somehow redirect to that 'suspended' page with flash message
     }
    else{
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以创建会话。

在重定向之前创建Flash会话$this->Session->write('message','Youre message')。然后在重定向的页面if(isset($this->Session->read('message'))中调用会话。只是不要忘记删除会话。

相关问题