Actions
Defect #18930
closedsession_expiration fails to find active user to set localization for
Status:
Closed
Priority:
Normal
Assignee:
-
Category:
I18n
Target version:
-
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Invalid
Affected version:
Description
Redmine 2.6.1, mysql, amazon linux.
When a session has expired and the user attempts to use Redmine, a 500 error is returned as the session_expiration method is unable to find an active user to set the localization for.
Problem area:
def session_expiration
if session[:user_id]
if session_expired? && !try_to_autologin
set_localization(User.active.find_by_id(session[:user_id]))
reset_session
flash[:error] = l(:error_session_expired)
redirect_to signin_url
else
session[:atime] = Time.now.utc.to_i
end
end
end
With the error:
Started GET "/" for x.x.x.x at 2015-01-21 23:37:33 +0000
Processing by WelcomeController#index as HTML
User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`status` = 1 AND `use
rs`.`id` = 12 LIMIT 1
Completed 500 Internal Server Error in 2.1ms
ArgumentError (wrong number of arguments (1 for 0)):
app/controllers/application_controller.rb:65:in `session_expiration'
If a reset_session is called before set_localization, and set_localization is without parameters, the correct behavior occurs, where the user is redirected toa login screen and no 500 error occurs.
def session_expiration
if session[:user_id]
if session_expired? && !try_to_autologin
reset_session
set_localization
flash[:error] = l(:error_session_expired)
redirect_to signin_url
else
session[:atime] = Time.now.utc.to_i
end
end
end
Actions