Description:
force log out when password change
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r884:490fbe2ccf0b - - 2 files changed: 6 inserted, 0 deleted

@@ -105,24 +105,29
105 105 unauthorized_redirect 'Your account is disabled'
106 106 return false
107 107 end
108 108
109 109 # check if user ip is allowed
110 110 unless @current_user.admin? || GraderConfiguration[WHITELIST_IGNORE_CONF_KEY]
111 111 unless is_request_ip_allowed?
112 112 unauthorized_redirect 'Your IP is not allowed to login at this time.'
113 113 return false
114 114 end
115 115 end
116 116
117 + # check if password is changed
118 + if session[:last_password_hash] != @current_user.hashed_password
119 + unauthorized_redirect 'You are forced to log out.'
120 + end
121 +
117 122 if GraderConfiguration.multicontests?
118 123 return true if @current_user.admin?
119 124 begin
120 125 if @current_user.contest_stat(true).forced_logout
121 126 flash[:notice] = 'You have been automatically logged out.'
122 127 redirect_to :controller => 'main', :action => 'index'
123 128 end
124 129 rescue
125 130 end
126 131 end
127 132 return true
128 133 end
@@ -25,24 +25,25
25 25 #store uuid when login
26 26 if user.last_ip.nil?
27 27 user.last_ip = cookies.encrypted[:uuid]
28 28 else
29 29 if user.last_ip != cookies.encrypted[:uuid]
30 30 user.last_ip =cookies.encrypted[:uuid]
31 31 #log different login
32 32 end
33 33 end
34 34
35 35 #process logging in
36 36 session[:user_id] = user.id
37 + session[:last_password_hash] = user.hashed_password
37 38 session[:admin] = user.admin?
38 39
39 40 # clear forced logout flag for multicontests contest change
40 41 if GraderConfiguration.multicontests?
41 42 contest_stat = user.contest_stat
42 43 if contest_stat.respond_to? :forced_logout
43 44 if contest_stat.forced_logout
44 45 contest_stat.forced_logout = false
45 46 contest_stat.save
46 47 end
47 48 end
48 49 end
You need to be logged in to leave comments. Login now