Module: Wristband::ApplicationExtensions::InstanceMethods
- Defined in:
- lib/wristband/application_extensions.rb
Instance Method Summary collapse
-
#current_user ⇒ Object
Returns the current user in session.
-
#current_user=(user) ⇒ Object
Sets the current user in session.
-
#logged_in? ⇒ Boolean
Returns true if a user is logged in.
- #login(session_user, cookie_expires_at = 2.weeks.from_now.utc) ⇒ Object
- #login_as_user(user, remember_me = false, cookie_expires_at = 2.weeks.from_now.utc) ⇒ Object
-
#login_from_cookie ⇒ Object
Logs a user automatically from his cookie.
-
#login_required ⇒ Object
You can use this function as a before filter on your controllers that require autentication.
-
#logout ⇒ Object
Logs a user out and deletes the session_token.
Instance Method Details
#current_user ⇒ Object
Returns the current user in session. Use this on your views and controllers.
41 42 43 |
# File 'lib/wristband/application_extensions.rb', line 41 def current_user @current_user ||= (session[:user_id] and ::User.find_by_id(session[:user_id])) end |
#current_user=(user) ⇒ Object
Sets the current user in session
46 47 48 49 |
# File 'lib/wristband/application_extensions.rb', line 46 def current_user=(user) @current_user = user session[:user_id] = (user and user.id) end |
#logged_in? ⇒ Boolean
Returns true if a user is logged in
36 37 38 |
# File 'lib/wristband/application_extensions.rb', line 36 def logged_in? !!current_user end |
#login(session_user, cookie_expires_at = 2.weeks.from_now.utc) ⇒ Object
14 15 16 |
# File 'lib/wristband/application_extensions.rb', line 14 def login(session_user, = 2.weeks.from_now.utc) login_as_user(session_user.user, session_user.remember_me, ) end |
#login_as_user(user, remember_me = false, cookie_expires_at = 2.weeks.from_now.utc) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/wristband/application_extensions.rb', line 18 def login_as_user(user, remember_me=false, = 2.weeks.from_now.utc) self.current_user = user if remember_me token = Support.encrypt_with_salt(user.id.to_s, Wristband::Support.random_salt, ::User.wristband[:encryption_type]) [:login_token] = { :value => token, :expires => } user.update_attribute(:session_token, token) end end |
#login_from_cookie ⇒ Object
Logs a user automatically from his cookie
You can use this function as a before filter on your controllers.
54 55 56 57 |
# File 'lib/wristband/application_extensions.rb', line 54 def return if (logged_in? or ![:login_token]) self.current_user = ::User.where(:session_token => [:login_token]).first end |
#login_required ⇒ Object
You can use this function as a before filter on your controllers that require autentication.
If the user is not logged in respond_not_logged_in
will be called.
62 63 64 |
# File 'lib/wristband/application_extensions.rb', line 62 def login_required logged_in? end |
#logout ⇒ Object
Logs a user out and deletes the session_token.
28 29 30 31 32 33 |
# File 'lib/wristband/application_extensions.rb', line 28 def logout current_user.update_attribute(:session_token, nil) if current_user self.current_user = nil .delete(:login_token) reset_session end |