mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Guardian#can_remove_allowed_users? shouldn't break for ownerless topics
A topic can outlive its original author. TopicGuardian should still work in this situation.
This commit is contained in:
parent
3e161e372a
commit
9cf77372a2
@ -5,7 +5,7 @@ module TopicGuardian
|
|||||||
|
|
||||||
def can_remove_allowed_users?(topic, target_user = nil)
|
def can_remove_allowed_users?(topic, target_user = nil)
|
||||||
is_staff? ||
|
is_staff? ||
|
||||||
(topic.user == user && user.has_trust_level?(TrustLevel[2])) ||
|
(topic.user == @user && @user.has_trust_level?(TrustLevel[2])) ||
|
||||||
(
|
(
|
||||||
topic.allowed_users.count > 1 &&
|
topic.allowed_users.count > 1 &&
|
||||||
topic.user != target_user &&
|
topic.user != target_user &&
|
||||||
|
@ -3503,6 +3503,21 @@ describe Guardian do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "anonymous users" do
|
||||||
|
fab!(:topic) { Fabricate(:topic) }
|
||||||
|
|
||||||
|
it 'should be false' do
|
||||||
|
expect(Guardian.new.can_remove_allowed_users?(topic)).to eq(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should be false when the topic does not have a user (for example because the user was removed)' do
|
||||||
|
DB.exec("UPDATE topics SET user_id=NULL WHERE id=#{topic.id}")
|
||||||
|
topic.reload
|
||||||
|
|
||||||
|
expect(Guardian.new.can_remove_allowed_users?(topic)).to eq(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#auth_token' do
|
describe '#auth_token' do
|
||||||
|
Loading…
Reference in New Issue
Block a user