diff --git a/lib/guardian/topic_guardian.rb b/lib/guardian/topic_guardian.rb index 24b5eaa0de1..014e707afd5 100644 --- a/lib/guardian/topic_guardian.rb +++ b/lib/guardian/topic_guardian.rb @@ -84,6 +84,7 @@ module TopicGuardian end def can_convert_topic?(topic) + return false unless SiteSetting.enable_personal_messages? return false if topic.blank? return false if topic && topic.trashed? return false if Category.where("topic_id = ?", topic.id).exists? diff --git a/spec/components/guardian_spec.rb b/spec/components/guardian_spec.rb index 4603b006ef4..f96f4e001a0 100644 --- a/spec/components/guardian_spec.rb +++ b/spec/components/guardian_spec.rb @@ -1095,6 +1095,11 @@ describe Guardian do it 'returns true when an admin' do expect(Guardian.new(admin).can_convert_topic?(topic)).to be_truthy end + + it 'returns false when personal messages are disabled' do + SiteSetting.enable_personal_messages = false + expect(Guardian.new(admin).can_convert_topic?(topic)).to be_falsey + end end describe 'can_edit?' do