Как расширить CBehavior при использовании massLogout
Я сделал файл applicationBehavior.php
которые находятся в папке компонентов, вот так:
<?php
class applicationBehavior extends CBehavior
{
public function events()
{
return array(
'onBeginRequest'=>'massLogout',
);
}
public function massLogout()
{
$owner = $this->getOwner();
if($owner->getGlobalState('massLogout') && ($owner->user->name!=='bertho'))
{
$owner->user->clearStates();
$owner->catchAllRequest=array('maintenance','view'=>'index');
}
}
}
И я уже зарегистрировался в config/main.php
:
'behaviors'=>array(
'class'=>'application.components.applicationBehavior',
),
я бы использовал, чтобы сделать настройки в приложении. Если я запускаю контроллер, чтобы отключить мое приложение (Maintenance mode
) тогда позвонил бы так:
public function actionTurnoff()
{
Yii::app()->setGlobalState('massLogout',true);
$this->render('turnoff');
}
Все пользователи остановятся автоматически, если только пользователь, которого я использую, не использует имя пользователя: bertho
,
Проблема сейчас, когда я (имя пользователя: bertho
Выйти, тогда я буду lose control
чтобы вернуться в мою заявку.
Как я должен создать код, если обычный пользователь (without login
) не подвержены этому поведению?
Я попытался изучить условия:
$user = $owner->user->name;
а потом:
if($user!='Guest'){
if($owner->getGlobalState('massLogout') && $user=='bertho'){
$owner->user->clearStates();
$owner->catchAllRequest=array('maintenance','view'=>'index');
}
}
Но это всегда ошибка: session_regenerate_id(): Session object destruction failed
,
Что я должен делать?