From 9792e03c63c08f88dfe7750fe252fb9247f45682 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 14 Jul 2017 14:15:33 +0900 Subject: [PATCH] FIX: Group name was being reverted to non-localized version. https://meta.discourse.org/t/localized-staff-group-names-changed/65360/16 --- app/models/group.rb | 9 +++------ spec/models/group_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/models/group.rb b/app/models/group.rb index 423b535b6a5..5f8aa3fd8d4 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -224,12 +224,9 @@ class Group < ActiveRecord::Base localized_name = I18n.t("groups.default_names.#{name}").downcase validator = UsernameValidator.new(localized_name) - group.name = - if !Group.where("LOWER(name) = ?", localized_name).exists? && validator.valid_format? - localized_name - else - name - end + if !Group.where("LOWER(name) = ?", localized_name).exists? && validator.valid_format? + group.name = localized_name + end # the everyone group is special, it can include non-users so there is no # way to have the membership in a table diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index d2ba94714b9..aa53597a608 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -183,6 +183,28 @@ describe Group do expect(g.visibility_level).to eq(Group.visibility_levels[:owners]) end + it "does not reset the localized name" do + begin + default_locale = SiteSetting.default_locale + I18n.locale = SiteSetting.default_locale = 'fi' + + group = Group.find(Group::AUTO_GROUPS[:everyone]) + group.update!(name: I18n.t("groups.default_names.everyone")) + + Group.refresh_automatic_group!(:everyone) + + expect(group.reload.name).to eq(I18n.t("groups.default_names.everyone")) + + I18n.locale = SiteSetting.default_locale = 'en' + + Group.refresh_automatic_group!(:everyone) + + expect(group.reload.name).to eq(I18n.t("groups.default_names.everyone")) + ensure + I18n.locale = SiteSetting.default_locale = default_locale + end + end + it "uses the localized name if name has not been taken" do begin default_locale = SiteSetting.default_locale