Class: LoginController
Instance Method Summary
collapse
Methods included from Common
like_operator, #set_theme
#admin_login_required, #admin_or_self_login_required, #all_done_todos_for, #boolean_param, cas_enabled?, #cas_enabled?, #count_deferred_todos, #count_undone_todos, #count_undone_todos_phrase, #done_todos_for, #enable_mobile_content_negotiation, #for_autocomplete, #format_date, #format_dependencies_as_json_for_auto_complete, #handle_unverified_request, #init_data_for_sidebar, #init_hidden_todo_counts, #init_not_done_counts, #mobile?, #notify, #openid_enabled?, openid_enabled?, #parse_date_per_user_prefs, prefered_auth?, #prefered_auth?, #redirect_back_or_home, #render_failure, #sanitize, #set_group_view_by, #set_locale, #set_session_expiration, #set_time_zone, #set_zindex_counter, #todo_xml_params
#access_denied, #authorize?, #basic_auth_denied, #current_user, #get_basic_auth_data, #get_current_user, #logged_in?, #login_from_cookie, #login_optional, #login_or_feed_token_required, #login_required, #logout_user, #prefs, #protect?, #redirect_back_or_default, #redirect_to_login, #set_current_user, #store_location
Instance Method Details
#check_expiry ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'app/controllers/login_controller.rb', line 39
def check_expiry
unless session == nil
if session
return unless should_expire_sessions?
time_left = expiry_time - Time.zone.now
@session_expired = (time_left < (10 * 60)) end
end
respond_to do |format|
format.js
end
end
|
#expiry_time ⇒ Object
81
82
83
84
|
# File 'app/controllers/login_controller.rb', line 81
def expiry_time
return Time.zone.now + 10 unless session['expiry_time']
Time.zone.parse(session['expiry_time'])
end
|
#handle_post_failure ⇒ Object
72
73
74
75
|
# File 'app/controllers/login_controller.rb', line 72
def handle_post_failure
@login = params['user_login']
notify :warning, t('login.unsuccessful')
end
|
#handle_post_success ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'app/controllers/login_controller.rb', line 57
def handle_post_success
session['user_id'] = @user.id
session['noexpiry'] = params['user_noexpiry']
msg = (should_expire_sessions?) ? "will expire after 1 hour of inactivity." : "will not expire."
notify :notice, "Login successful: session #{msg}"
cookies[:tracks_login] = { :value => @user.login, :expires => Time.zone.now + 1.year, :secure => SITE_CONFIG['secure_cookies'] }
unless should_expire_sessions?
@user.remember_me
cookies[:auth_token] = { :value => @user.remember_token, :expires => @user.remember_token_expires_at, :secure => SITE_CONFIG['secure_cookies'] }
end
redirect_back_or_home
end
|
#login ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/controllers/login_controller.rb', line 13
def login
@page_title = "TRACKS::Login"
cookies[:preferred_auth] = prefered_auth? unless cookies[:preferred_auth]
case request.method
when 'POST'
if (@user = User.authenticate(params['user_login'], params['user_password']))
@user.update_attribute(:last_login_at, Time.zone.now)
return handle_post_success
else
handle_post_failure
end
when 'GET'
if User.no_users_yet?
return redirect_to signup_path
end
end
respond_to do |format|
format.html
format.m { render :action => 'login', :layout => 'mobile' }
end
end
|
#logout ⇒ Object
35
36
37
|
# File 'app/controllers/login_controller.rb', line 35
def logout
logout_user
end
|
#should_expire_sessions? ⇒ Boolean
77
78
79
|
# File 'app/controllers/login_controller.rb', line 77
def should_expire_sessions?
session['noexpiry'] != "on"
end
|