Module: ActionController::AuthenticateAnonymous::InstanceMethods
- Defined in:
- lib/action_controller/authenticate_anonymous.rb
Instance Method Summary collapse
- #authenticated_with_anonymous? ⇒ Boolean
- #current_user_with_anonymous ⇒ Object
- #login_anonymous!(anonymous) ⇒ Object
- #login_or_register_anonymous ⇒ Object
- #register_or_update_anonymous(anonymous) ⇒ Object
- #request_info ⇒ Object
- #try_login_anonymous ⇒ Object
Instance Method Details
#authenticated_with_anonymous? ⇒ Boolean
33 34 35 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 33 def authenticated_with_anonymous? !!current_user and !current_user.anonymous? end |
#current_user_with_anonymous ⇒ Object
29 30 31 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 29 def current_user_with_anonymous @current_user ||= (current_user_without_anonymous || login_or_register_anonymous) end |
#login_anonymous!(anonymous) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 55 def login_anonymous!(anonymous) # set a new session token and expiration token = anonymous.assign_token('anonymous', 3.hour.from_now) anonymous.save session[:anonymous_token] = "#{anonymous.id};#{token}" [:aid] = anonymous.id.to_s unless anonymous.new_record? end |
#login_or_register_anonymous ⇒ Object
37 38 39 40 41 42 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 37 def login_or_register_anonymous anonymous = try_login_anonymous || User.anonymous anonymous = register_or_update_anonymous anonymous if params[:user] login_anonymous! anonymous if anonymous anonymous end |
#register_or_update_anonymous(anonymous) ⇒ Object
49 50 51 52 53 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 49 def register_or_update_anonymous(anonymous) # if :name and :email params are passed either register a new Anonymous or update the existing one anonymous.update_attributes params[:user].merge(request_info) anonymous end |
#request_info ⇒ Object
63 64 65 66 67 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 63 def request_info { :ip => request.env["REMOTE_ADDR"], :agent => request.env["HTTP_USER_AGENT"], :referer => request.env["HTTP_REFERER"] } end |
#try_login_anonymous ⇒ Object
44 45 46 47 |
# File 'lib/action_controller/authenticate_anonymous.rb', line 44 def try_login_anonymous # try to authenticate if token is present validate_token User, session[:anonymous_token] if session[:anonymous_token] end |