如何在访问被拒绝时将每种类型的用户重定向到不同的页面?

时间:2014-06-05 11:49:44

标签: cakephp authentication cakephp-2.3

在我的应用程序中,我有3个用户角色(用户,管理员,非登录用户),并且我希望在访问被拒绝时将它们重定向到不同的页面。怎么做?

及时,$ this-> Auth-> authorize = array('Controller');手段?我在蛋糕文档中没有理解这一点。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

我会在IF语句中使用它,但也许其他人可以建议更多CakePHP特定的方法..

if($user === 'Admin') {
   //Admin Redirect
   $redirectController = 'admin';
   $redirectMethod = 'admin_index';
} elseif ($user === 'User') {
   //User Redirect
   $redirectController = 'user';
   $redirectMethod = 'index';
} else {
  //Not logged in
  $redirectController = 'SomeController';
  $redirectMethod = 'someMethod';
}

$this->Auth->unauthorizedRedirect = array(
        'controller' => $redirectController,
        'action' => $redirectMethod 
    );

$this->Auth->authorize = array('Controller');表示授权在Controller级别完成。我相信你可以改变使用它进行授权的地方。