Как расширить 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,

Что я должен делать?

0 ответов

Другие вопросы по тегам