module AutoSessionTimeout

Public Class Methods

included(controller) click to toggle source
# File lib/auto_session_timeout.rb, line 3
def self.included(controller)
  controller.extend ClassMethods
end

Public Instance Methods

render_session_status() click to toggle source
# File lib/auto_session_timeout.rb, line 28
def render_session_status
  response.headers["Etag"] = ""  # clear etags to prevent caching
  render plain: !!current_user, status: 200
end
render_session_timeout() click to toggle source
# File lib/auto_session_timeout.rb, line 33
def render_session_timeout
  flash[:notice] = t("devise.failure.timeout", default: "Your session has timed out.")
  redirect_to sign_in_path
end

Private Instance Methods

session_expired?(c) click to toggle source
# File lib/auto_session_timeout.rb, line 44
def session_expired?(c)
  c.session[:auto_session_expires_at].try(:<, Time.now)
end
sign_in_path() click to toggle source
# File lib/auto_session_timeout.rb, line 48
def sign_in_path
  user_session_path
rescue
  "/login"
end
signing_in?(c) click to toggle source
# File lib/auto_session_timeout.rb, line 40
def signing_in?(c)
  c.request.env["PATH_INFO"] == sign_in_path && c.request.env["REQUEST_METHOD"] == "POST"
end