Мне нужно обеспечить аутентификацию на всех страницах приложения YII. Для этого я расширил SiteController
класс с помощью следующего кода я получил от http://www.heirbaut.nl/2010/02/23/forcing-a-yii-application-to-authenticate/:Почему Yii-принудительная аутентификация работает только на домашней странице/статических страницах?
/**
* @return array action filters
*/
public function filters(){
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules(){
return array(
array('allow', // allow all users to perform 'login'
'actions'=>array('login'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform any action
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
Это только делает то, что он должен, перенаправить все запросы на unauthenticaed пользователей к форме входа в систему, для index.php
URL. Но index.php?r=person
и, следовательно, главное меню приложения обходит это ограничение и появляется независимо от аутентификации.
Do у вас есть «PersonController»? – topher
да. нужно ли каждому контроллеру ссылаться на тот же код? если вы говорите, что это так, конечно, больно, а создайте новый класс для наследования. но это похоже на много кодовой таблички. не могу ли я решить эту проблему выше в цепочке в Yii? – aelgoa