From 777dce4c87b98ee9d9fda1ebbbe9da615d8b881c Mon Sep 17 00:00:00 2001 From: Jens Pfeifer Date: Mon, 6 Feb 2017 14:06:54 +0000 Subject: [PATCH] Fixed issue #429, user.preferences['locale'] not initialized at user creation. --- app/models/user.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index d0af3c6b9..3bb7e25b4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -38,7 +38,7 @@ class User < ApplicationModel include User::SearchIndex before_validation :check_name, :check_email, :check_login, :ensure_password - before_create :check_preferences_default, :validate_roles, :domain_based_assignment + before_create :check_preferences_default, :validate_roles, :domain_based_assignment, :set_locale before_update :check_preferences_default, :validate_roles after_create :avatar_for_email_check after_update :avatar_for_email_check @@ -881,6 +881,18 @@ returns end end + # sets locale of the user + def set_locale + + # set the user's locale to the one of the "executing" user + return if !UserInfo.current_user_id + user = User.find_by( id: UserInfo.current_user_id ) + return if !user + return if !user.preferences[:locale] + + self.preferences[:locale] = user.preferences[:locale] + end + def avatar_for_email_check return if email.blank? return if email !~ /@/