Class: AccountController

Inherits:
KitController show all
Defined in:
app/controllers/account_controller.rb

Constant Summary

Constants inherited from KitController

KitController::Pagebase

Instance Attribute Summary

Attributes inherited from KitController

#is_image_request, #kit_request, #layout_being_used, #requested_url, #template_being_used

Instance Method Summary collapse

Methods inherited from KitController

#anti_spam_okay?, #app_name, #can_moderate, #can_use, #captcha_okay?, #check_and_record_goal, #check_user, #csv_headers, #dif, #edit_page_path, #feature?, #get_asset, #get_view_content, #host_name, #index_name, #info_page_path, #kit_layout_in_use, #kit_render, #kit_session, #kit_session_end, #link_to, #mailchimp_connect, #mobile_template, #no_read, #no_write, #not_found, #not_found_404, #offline, #page_path, #pref, #rails_app_name, #render, #render_error, #render_page, #render_page_by_url, #routing_error, #sanity_check_okay?, #session_id, #set_requested_url, #show_form, #stylesheets, #super_render, #user_sees_menu?

Instance Method Details

#editObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/account_controller.rb', line 7

def edit
  redirect_to  unless current_user

  if request.post?
    user.email = params[:email] unless params[:must_change_password]
    if params[:must_change_password] || params[:password].not_blank? || params[:password_confirmation].not_blank?
      user.skip_password = false
      user.password = params[:password]
      user.password_confirmation = params[:password_confirmation]
    else
      user.skip_password = true
    end      
    if user.save
      (:edit)
      return
    end
  end

  render_action "edit"
end

#forgottenObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/controllers/account_controller.rb', line 28

def forgotten
  if request.post? && (params[:email].not_blank? || (params[:user] && params[:user][:email].not_blank?))
    u = User.sys(_sid).where(:email=>(params[:email] || params[:user][:email])).first
    if u
      u.skip_password = true
      u.reset_password_token = Digest::MD5.hexdigest(u.email + Time.now.to_s + rand(100000).to_s)
      u.reset_password_sent_at = Time.now
      u.save!
      Notification.forgotten_password(u.id).deliver
      Activity.add(_sid, "Sent password reset to user <a href='/admin/user/#{u.id}'>#{u.email}</a>", nil, "Users")
    end 
    redirect_to , :notice=>t("account.reset_sent")
    return
  end

  render_action("forgotten")
end

#resetObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/account_controller.rb', line 46

def reset
  code = params[:code]

  u = User.sys(_sid).where(:reset_password_token=>params[:code]).where("reset_password_sent_at >= date_sub(now(), interval 24 hour)").where("reset_password_token is not null").first

  if u
    warden.set_user u
    u.skip_password = true
    u.(_sid, request)
    u.reset_password_token = nil
    u.save
    render_action("edit", {:notice=>t("account.change_your_password"), :dont_show_intro=>true, :dont_show_leave_blank_passwords=>true, :must_change_password=>true})
  else
    render_action("forgotten", :notice=>t("account.reset_failed"))
  end
end

#sign_inObject



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'app/controllers/account_controller.rb', line 105

def 
  if request.post?
    authenticate
    if current_user
      current_user.(_sid, request)
      if params[:remember_me]
        remember_for = (Preference.get_cached(_sid, "account_remember_for_days") || "90").to_i
        cookies[:sign_in] = { :value=> current_user.remember_token, :expires=> remember_for.days.from_now }
      end
      if params[:return_to]
        redirect_to params[:return_to]
      elsif url = pref("url_after_sign_in")
        redirect_to url
      else
        (:email)
      end
      return
    else
      u = User.(_sid, request)
    end
  end

  render_action("sign_in")
end

#sign_outObject



130
131
132
133
134
135
136
137
138
139
140
141
# File 'app/controllers/account_controller.rb', line 130

def sign_out
  if current_user
    if current_user.respond_to?(:last_sign_out)
      current_user.update_attributes(:last_sign_out=>Time.now)
    end
    current_user.dont_remember
    warden.logout

  end

  redirect_to params[:url] || pref("url_after_sign_out") || "/"
end

#sign_upObject



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'app/controllers/account_controller.rb', line 80

def 
  new_user = nil

  if request.post? 
    new_user = User.new
    new_user.skip_password = false
    new_user.email = params[:email] || params[:user][:email]
    new_user.password = params[:password] || params[:user][:password]
    new_user.password_confirmation = params[:password_confirmation] || params[:user][:password_confirmation]
    new_user.display_name = params[:display_name] 
    new_user.system_id = _sid
    new_user. = request.remote_ip

    if new_user.save
      process_new_user(new_user)
      warden.set_user new_user
      new_user.(_sid, request)
      
      return
    end
  end
  @user = new_user
  render_action("sign_up")
end

#unauthenticatedObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'app/controllers/account_controller.rb', line 63

def unauthenticated
  

  if params[(Preference.get_cached(_sid, "account_token_param") || 'token').to_sym]
    authenticate
    if current_user
      current_user.(_sid, request)
      (:token)
    else
      (:token, true)
    end
    return
  end

  
end