Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions plugin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,5 @@ def can_create_post_on_topic?(topic)
Guardian.class_exec do
prepend topic_overrides
end

category_overrides = Module.new do
def category_params
return super if !SiteSetting.restricted_replies_enabled
super.tap do |value|
if params["custom_fields"] && groups = params["custom_fields"]["restrict_replies_bypass_groups"]
value["custom_fields"]["restrict_replies_bypass_groups"] = groups
end
end
end
end

CategoriesController.class_exec do
prepend category_overrides
end
end
end
35 changes: 35 additions & 0 deletions spec/requests/categories_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

describe CategoriesController do
let(:admin) { Fabricate(:admin) }
let!(:category) { Fabricate(:category, user: admin) }

context '#update' do
before do
SiteSetting.restricted_replies_enabled = true
sign_in(admin)
end

it "updates `restrict_replies_bypass_groups` custom field correctly" do
readonly = CategoryGroup.permission_types[:readonly]
create_post = CategoryGroup.permission_types[:create_post]
tag_group = Fabricate(:tag_group)

put "/categories/#{category.id}.json", params: {
name: "hello",
color: "ff0",
text_color: "fff",
slug: "hello-category",
auto_close_hours: 72,
custom_fields: {
"restrict_replies": true,
"restrict_replies_bypass_groups" => [1, 2]
}
}

expect(response.status).to eq(200)
category.reload
expect(category.custom_fields).to eq("restrict_replies" => true, "restrict_replies_bypass_groups" => [1, 2])
end
end
end