Как установить сообщение во флэш-памяти, когда время ожидания пользователя истекло? - PullRequest
1 голос
/ 26 декабря 2010

У меня есть приложение rails, которое использует authlogic для аутентификации.У меня установлен тайм-аут на 60 минут.

Когда время сеанса истекает, пользователь возвращается к основному экрану входа в систему, но не объясняется, почему он вышел из системы.Есть ли способ установить сообщение во флэш-памяти, чтобы это можно было объяснить пользователю?Я удивлен, что это не поведение по умолчанию.

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

Просто напишите свой собственный before_filter, чтобы проверить вошедшего в систему пользователя, и установите флэш-память там, используя метод stale? модуля AuthLogic :: Session.Вот как выглядит моя:

def login_required
  if current_user_session && current_user_session.stale?
    flash[:error] = "Timeout message here" 
  end
  redirect_to_login unless logged_in?
end
1 голос
/ 26 декабря 2010

Я не проверял его, но вы можете попытаться переопределить метод forcece_timeout в контроллере приложения. Примерно так:

private

def enforce_timeout
      if stale?
        self.stale_record = record
        self.record = nil
        flash[:now] = "Session timed out"
    end
  end
end

Вы можете поиграть с ним, если он не работает, вот источник, на который я посмотрел: https://github.com/binarylogic/authlogic/blob/master/lib/authlogic/session/timeout.rb

...