diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 594da9e0f1c30..0b78e02d7a73b 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -185,7 +185,7 @@ def update category_params[:minimum_required_tags] = 0 if category_params[:minimum_required_tags]&.blank? old_permissions = cat.permissions_params - old_permissions = { "everyone" => 1 } if old_permissions.empty? + old_permissions = { Group[:everyone].name => 1 } if old_permissions.empty? if result = cat.update(category_params) Category.preload_user_fields!(guardian, [cat]) diff --git a/spec/requests/categories_controller_spec.rb b/spec/requests/categories_controller_spec.rb index 535d98a8991d5..c998826ca1cbd 100644 --- a/spec/requests/categories_controller_spec.rb +++ b/spec/requests/categories_controller_spec.rb @@ -246,15 +246,8 @@ end it "does not include the sort parameter in more_topics_url" do - # we need to create more topics for more_topics_url to be serialized SiteSetting.categories_topics = 5 - Fabricate.times( - 5, - :topic, - category: category, - created_at: 1.day.ago, - bumped_at: 1.day.ago, - ) + Fabricate.times(5, :topic, category:, created_at: 1.day.ago, bumped_at: 1.day.ago) get "/categories_and_latest.json" expect(response.status).to eq(200) @@ -277,15 +270,8 @@ end it "includes the sort parameter in more_topics_url" do - # we need to create more topics for more_topics_url to be serialized SiteSetting.categories_topics = 5 - Fabricate.times( - 5, - :topic, - category: category, - created_at: 1.day.ago, - bumped_at: 1.day.ago, - ) + Fabricate.times(5, :topic, category:, created_at: 1.day.ago, bumped_at: 1.day.ago) get "/categories_and_latest.json" expect(response.status).to eq(200) @@ -349,7 +335,6 @@ CategoryFeaturedTopic.feature_topics SiteSetting.desktop_category_page_style = "categories_with_featured_topics" - # warmup get "/categories.json" expect(response.status).to eq(200) @@ -831,6 +816,39 @@ expect(UserHistory.count).to eq(6) end + it "does not log false permission changes when everyone group name is localized" do + original_name = Group[:everyone].name + localized_name = "jeder" + + Group[:everyone].update!(name: localized_name) + + category_with_no_permissions = Fabricate(:category, user: admin) + category_with_no_permissions.category_groups.destroy_all + + put "/categories/#{category_with_no_permissions.id}.json", + params: { + name: category_with_no_permissions.name, + color: category_with_no_permissions.color, + text_color: category_with_no_permissions.text_color, + slug: category_with_no_permissions.slug, + permissions: { + localized_name => CategoryGroup.permission_types[:full], + }, + } + + expect(response.status).to eq(200) + + expect( + UserHistory.exists?( + action: UserHistory.actions[:change_category_settings], + category_id: category_with_no_permissions.id, + subject: "permissions", + ), + ).to eq(false) + ensure + Group[:everyone].update!(name: original_name) + end + it "updates per-category settings correctly" do category.require_topic_approval = false category.require_reply_approval = false @@ -1129,7 +1147,7 @@ end describe "#categories_and_topics" do - before { 10.times.each { Fabricate(:topic) } } + before { 10.times { Fabricate(:topic) } } it "works when SiteSetting.categories_topics is non-null" do SiteSetting.categories_topics = 5