在我的应用程序中,我有一个具有3个不同角色的用户,每个角色都有自己可以访问的相应页面。当我们尝试访问他们不应该查看的任何页面时,我想将它们重定向到各自的主页,但是无法这样做。
我发现下面的线程有一个非常类似的问题,但在修改并将代码放入AppController :: beforefilter之后,我无法获得所需的结果。
How to redirect each type of user to a different page when access is denied?
使用上述主题中的代码更新:
public function beforeFilter(Event $event)
{
$user_role = $this->Auth->user('role');
if ($user_role == "admin")
{
$redirectController = 'Pages';
$redirectMethod = 'adminhome';
}
elseif ($user_role == "teacher")
{
$redirectController = 'Pages';
$redirectMethod = 'teacherhome';
}
elseif ($user_role == "studentparent")
{
$redirectController = 'Pages';
$redirectMethod = 'parenthome';
}
$this->Auth->unauthorizedRedirect = array(
'controller' => $redirectController,
'action' => $redirectMethod,
'prefix' => false
);
}