2011-04-28 102 views
0

我正在使用Users plugin来处理用户。 当用户需要访问需要登录的普通页面时,他们被重定向到登录页面,并且成功登录后重定向到页面。这一切都是好的和预期的。如何在登录后重定向到Routing.prefixes页面?

我的问题是重定向到Routing.prefixes后面的页面,用户被发送到登录页面,但成功登录后重定向到默认重定向页面($ this-> Auth-> loginRedirect)。

我该如何让Cake重定向到用户所请求的位于Routing.prefix后面的页面? 我想这是我失踪的配置,或者?

在config.php我有 Configure::write('Routing.prefixes', array('admin'));

+0

为了确保我们理解你的问题 - 你问如何有CakePHP的重定向到一个网页,一个路由前缀 - 即“管理/用户/我的帐户“ - 对吗? – Dave 2011-04-29 13:06:20

回答

0

我找到了解决办法。

在AppController中:: beforeFilter此修复它:

// make sure only admin can access admin area 
if (isset($this->params['admin']) && $this->params['admin']) { 
    if ($this->Auth->user() && !$this->Auth->user('is_admin')) { 
     $this->redirect('/login'); 
    } 
} 

0

你只需要重写蛋糕的 “AUTOMAGIC” 登录过程。

在你app_controller.php的beforeFilter():

$this->Auth->autoRedirect = false; 

创建app_users_controller并覆盖login()函数:

App::import('Controller', 'Users.Users'); 
AppUsersController extends UsersController { 

    function login() { 
     if(isset($this->data)) { 
      if($this->Auth->login($this->data)) { 
       $this->redirect(...) 
      } 
     } 
    } 
}