После того, как я попробовал все, что мог придумать, моей последней надеждой было не использовать контроллер страниц (по умолчанию). Поэтому я скопировал его в мое приложение / контроллеры и сделал его похожим на:
<?php
class PagesController extends AppController
{
var $name = 'Pages';
var $uses = array();
var $__allowUnAuthorized = array('*');
var $__allowAuthorized = array();
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow($this->__allowUnAuthorized);
}
function display()
{
// Same as default
}
}
Я также переместил некоторые вещи из моего user_controller в мой app_controller:
<?php
class AppController extends Controller
{
var $name = 'App';
var $components = array('Auth', 'Security', 'Session');
var $helpers = array('Html', 'Form', 'Session');
function beforeFilter()
{
parent::beforeFilter();
/* Auth */
$this->Auth->autoRedirect = false;
$this->Auth->loginAction = array(
'controller' => 'users',
'action' => 'login'
);
$this->Auth->loginRedirect = array(
'controller' => 'users',
'action' => 'index'
);
$this->Auth->loginError = __(
'Ongeldige conbinatie van gebruikersnaam en wachtwoord', true
);
$this->Auth->authError = __(
'U bent niet bevoegd om deze pagina te bekijken' ,true
);
$this->Session->delete('Auth.redirect');
}
}
?>
А теперь все отлично работает! Может быть, это было связано с тем, что у контроллера страниц нет доступа к $ this-> Session или $ this-> Auth?