Как перенаправить на страницы Routing.prefixes после входа в систему? - PullRequest
0 голосов
/ 28 апреля 2011

Я использую плагин Users для работы с пользователями. Когда пользователи хотят получить доступ к обычной странице, требующей входа в систему, они перенаправляются на страницу входа, а после успешного входа - на страницу. Это все хорошо и ожидаемо.

Моя проблема связана с перенаправлением на страницы за Routing.prefixes, где пользователи отправляются на страницу входа, но после успешного входа перенаправляются на страницу перенаправления по умолчанию ($ this-> Auth-> loginRedirect).

Как я могу сделать так, чтобы Cake перенаправлял на страницу, запрошенную пользователем, которая находится за Routing.prefix? Я думаю, что это конфигурация, которую я пропускаю, или?

В config.php у меня есть Configure::write('Routing.prefixes', array('admin'));

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

Я нашел решение.

В AppController :: beforeFilter это исправляет: </p> <pre><code>// 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 голосов
/ 28 апреля 2011

Вам просто нужно переопределить «автоматический» процесс входа в Cake.

В вашем 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(...)
            }
        }   
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...