FIX: Group name was being reverted to non-localized version.

https://meta.discourse.org/t/localized-staff-group-names-changed/65360/16
This commit is contained in:
Guo Xiang Tan
2017-07-14 14:15:33 +09:00
parent e80a1dfa43
commit 9792e03c63
2 changed files with 25 additions and 6 deletions

View File

@ -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

View File

@ -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