如何使用unauthorizedRedirect将不同角色的用户重定向到各自的页面?

时间:2017-05-16 15:46:29

标签: cakephp cakephp-3.0

在我的应用程序中,我有一个具有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
    );

}

0 个答案:

没有答案