我正试图想出一种简单的方法,根据用户的角色重定向用户,并在此基础上设置访问权限。
例如,如果用户被挂起,我会将他们的角色更改为"已挂起"。当该用户登录或访问任何页面时,我希望它重定向到一个页面,其中包含描述发生了什么以及如何取消暂停的信息。如果他们试图访问任何其他控制器/操作,我希望它再次重定向到"挂起"的页面。
以下是我的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;
}
}
您可以创建会话
在重定向之前创建闪存会话$this->Session->write('message','Youre message')
。然后调用会话中页面重定向的if(isset($this->Session->read('message'))
。只是不要忘记删除会话。