2015-04-27 3 views
0

Я пытаюсь получить мое приложение Yii для автоматического выхода из системы после установленного количества секунд, когда пользователь вводит определенный тип пользователя.Не удалось выйти из приложения Yii app & force для перенаправления (Yii 1.x)

я сделал следующее загладить мой защищенный/компоненты/файл WebUser.php:

public function init() { 
    parent::init(); 

    if (($user = $this->getState('userModel')) !== null) { 
     $this->setUserData(unserialize($user)); 

     if ($this->isNonAdminUser()) { 
      $this->authTimeout = 3600; // 1 hour timeout 
     } 
    } 

    $this->updateAuthStatus(); 
} 

// function automatically directly after $this->logout() 
protected function afterLogout() { 
    Yii::app()->request->redirect(('site/front/login')); 

    //Yii::app()->request->redirect((Yii::app()->user->returnUrl)); 
} 

Это в основном выход из программы «не пользователь с правами администратора» из сессии после того, как 1 часов отсутствия активности - это работает, однако Я хотел бы также «заставить» их вернуться на домашнюю страницу. Я попытался использовать функцию перенаправления в afterLogout(), но по какой-то причине, похоже, она не перенаправляет?

Любые идеи, почему бы и нет?

Примечание - Я использую YII 1.x

+1

Вы подтвердили, что 'afterLogout()' действительно был вызван? Кроме того, 'returnUrl' будет последней просматриваемой страницей не на главной странице. –

+0

хороший звонок с возвратом. Все это выходит из системы, и оно попадает в afterLogout(), поскольку я добавил случайный путь в перенаправление, однако я хотел бы сказать, что мое приложение автоматически перенаправляет обратно, чтобы перенаправить URL-адрес, если это возможно. Замечание - выход из строя прекрасен, как только время истекает, если я нажму F5 и перезагрузите страницу, я вышел из системы и перенаправлен - я просто пытаюсь вытащить ручной элемент из меня, чтобы перезагрузить (если возможно) – Zabs

+1

Ah хорошо, я вижу. Это возможно только с помощью javascript и ajax. В основном вы устанавливаете таймер для вызова функции после 3600 секунд, которая проверяет, должен ли пользователь выйти из системы. Если это так, перенаправление места в javascript. –

ответ

0

Попробуйте использовать Yii::app()->user->homeUrl вместо Yii::app()->user->returnUrl внутри afterLogout функции.