mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Prevent deleting the static page doc topics
This commit is contained in:
parent
578d4ac5f4
commit
5caf72510c
@ -41,7 +41,8 @@ module TopicGuardian
|
|||||||
def can_delete_topic?(topic)
|
def can_delete_topic?(topic)
|
||||||
!topic.trashed? &&
|
!topic.trashed? &&
|
||||||
is_staff? &&
|
is_staff? &&
|
||||||
!(Category.exists?(topic_id: topic.id))
|
!(Category.exists?(topic_id: topic.id)) &&
|
||||||
|
!Discourse.static_doc_topic_ids.include?(topic.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def can_reply_as_new_topic?(topic)
|
def can_reply_as_new_topic?(topic)
|
||||||
|
@ -1024,6 +1024,12 @@ describe Guardian do
|
|||||||
it 'returns true when an admin' do
|
it 'returns true when an admin' do
|
||||||
Guardian.new(admin).can_delete?(topic).should be_true
|
Guardian.new(admin).can_delete?(topic).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns false for static doc topics' do
|
||||||
|
tos_topic = Fabricate(:topic, user: Discourse.system_user)
|
||||||
|
SiteSetting.stubs(:tos_topic_id).returns(tos_topic.id)
|
||||||
|
Guardian.new(admin).can_delete?(tos_topic).should be_false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'a Post' do
|
context 'a Post' do
|
||||||
@ -1064,6 +1070,14 @@ describe Guardian do
|
|||||||
Guardian.new(admin).can_delete?(post).should be_true
|
Guardian.new(admin).can_delete?(post).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns false when post is first in a static doc topic' do
|
||||||
|
tos_topic = Fabricate(:topic, user: Discourse.system_user)
|
||||||
|
SiteSetting.stubs(:tos_topic_id).returns(tos_topic.id)
|
||||||
|
post.update_attribute :post_number, 1
|
||||||
|
post.update_attribute :topic_id, tos_topic.id
|
||||||
|
Guardian.new(admin).can_delete?(post).should be_false
|
||||||
|
end
|
||||||
|
|
||||||
context 'post is older than post_edit_time_limit' do
|
context 'post is older than post_edit_time_limit' do
|
||||||
let(:old_post) { build(:post, topic: topic, user: topic.user, post_number: 2, created_at: 6.minutes.ago) }
|
let(:old_post) { build(:post, topic: topic, user: topic.user, post_number: 2, created_at: 6.minutes.ago) }
|
||||||
before do
|
before do
|
||||||
|
Loading…
Reference in New Issue
Block a user