Module: ActionController::AuthenticateAnonymous::InstanceMethods

Defined in:
lib/action_controller/authenticate_anonymous.rb

Instance Method Summary collapse

Instance Method Details

#login_anonymous!(anonymous) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/action_controller/authenticate_anonymous.rb', line 54

def (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}"
  cookies[:aid] = anonymous.id.to_s unless anonymous.new_record?
end

#login_or_register_anonymousObject



36
37
38
39
40
41
# File 'lib/action_controller/authenticate_anonymous.rb', line 36

def 
  anonymous =  || User.anonymous
  anonymous = register_or_update_anonymous anonymous if params[:user]
   anonymous if anonymous
  anonymous
end

#register_or_update_anonymous(anonymous) ⇒ Object



48
49
50
51
52
# File 'lib/action_controller/authenticate_anonymous.rb', line 48

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 params[:user].merge(request_info)
  anonymous
end

#request_infoObject



62
63
64
65
66
# File 'lib/action_controller/authenticate_anonymous.rb', line 62

def request_info
  { :ip      => request.env["REMOTE_ADDR"],
    :agent   => request.env["HTTP_USER_AGENT"],
    :referer => request.env["HTTP_REFERER"] }
end

#try_login_anonymousObject



43
44
45
46
# File 'lib/action_controller/authenticate_anonymous.rb', line 43

def 
  # try to authenticate if token is present
  validate_token User, session[:anonymous_token] if session[:anonymous_token]
end