mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 13:03:45 +08:00
prevent users from ever changing the category of a topic in a support category
This commit is contained in:
parent
578e15224b
commit
e8a6ff4808
|
@ -540,6 +540,7 @@ class Topic < ActiveRecord::Base
|
||||||
|
|
||||||
def change_category_to_id(category_id)
|
def change_category_to_id(category_id)
|
||||||
return false if private_message?
|
return false if private_message?
|
||||||
|
return false if category.try(:is_support)
|
||||||
|
|
||||||
new_category_id = category_id.to_i
|
new_category_id = category_id.to_i
|
||||||
# if the category name is blank, reset the attribute
|
# if the category name is blank, reset the attribute
|
||||||
|
|
|
@ -898,6 +898,18 @@ describe TopicsController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when topic is in support category' do
|
||||||
|
let(:another_category) { Fabricate(:category) }
|
||||||
|
|
||||||
|
it "cannot change the category of a topic that is in a support category" do
|
||||||
|
@topic.category = Fabricate(:category, is_support: true)
|
||||||
|
@topic.save!
|
||||||
|
xhr :put, :update, topic_id: @topic.id, slug: @topic.title, category_id: another_category.id
|
||||||
|
expect(response).not_to be_success
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
context "allow_uncategorized_topics is false" do
|
context "allow_uncategorized_topics is false" do
|
||||||
before do
|
before do
|
||||||
SiteSetting.stubs(:allow_uncategorized_topics).returns(false)
|
SiteSetting.stubs(:allow_uncategorized_topics).returns(false)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user