class Authie::ControllerDelegate
Public Class Methods
new(controller)
click to toggle source
# File lib/authie/controller_delegate.rb, line 8 def initialize(controller) @controller = controller end
Public Instance Methods
auth_session()
click to toggle source
Return the currently logged in user session
# File lib/authie/controller_delegate.rb, line 71 def auth_session @auth_session ||= Authie::Session.get_session(@controller) @auth_session == :none ? nil : @auth_session end
create_auth_session(user)
click to toggle source
Create a new session for the given user
# File lib/authie/controller_delegate.rb, line 45 def create_auth_session(user) if user @auth_session = Authie::Session.start(@controller, user: user) else auth_session.invalidate! if logged_in? @auth_session = :none end end
current_user()
click to toggle source
Return the currently logged in user object
# File lib/authie/controller_delegate.rb, line 35 def current_user logged_in? ? auth_session.user : nil end
current_user=(user)
click to toggle source
Set the currently logged in user
# File lib/authie/controller_delegate.rb, line 40 def current_user=(user) create_auth_session(user) end
invalidate_auth_session()
click to toggle source
Invalidate an existing auth session
# File lib/authie/controller_delegate.rb, line 55 def invalidate_auth_session if logged_in? auth_session.invalidate! @auth_session = :none true else false end end
logged_in?()
click to toggle source
Is anyone currently logged in?
# File lib/authie/controller_delegate.rb, line 66 def logged_in? auth_session.is_a?(Session) end
set_browser_id()
click to toggle source
Set a random browser ID for this browser.
# File lib/authie/controller_delegate.rb, line 13 def set_browser_id until cookies[Authie.config.browser_id_cookie_name] proposed_browser_id = SecureRandom.uuid next if Authie::Session.where(browser_id: proposed_browser_id).exists? cookies[Authie.config.browser_id_cookie_name] = { value: proposed_browser_id, expires: 5.years.from_now, httponly: true, secure: @controller.request.ssl? } # Dispatch an event when the browser ID is set. Authie.config.events.dispatch(:set_browser_id, proposed_browser_id) end end
touch_auth_session()
click to toggle source
Touch the auth session on each request if logged in
# File lib/authie/controller_delegate.rb, line 30 def touch_auth_session auth_session.touch! if logged_in? end