Module: ActionController::AuthenticateAnonymous::InstanceMethods

Defined in:
lib/action_controller/authenticate_anonymous.rb

Instance Method Summary collapse

Instance Method Details

#authenticated_with_anonymous?Boolean

Returns:

  • (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_anonymousObject



29
30
31
# File 'lib/action_controller/authenticate_anonymous.rb', line 29

def current_user_with_anonymous
  @current_user ||= (current_user_without_anonymous || )
end

#login_anonymous!(anonymous) ⇒ Object



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

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



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

def 
  anonymous =  || User.anonymous
  anonymous = register_or_update_anonymous anonymous if params[:user]
   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_infoObject



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_anonymousObject



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

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