mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Separated 'trusted users can edit others' setting for trust level 3 & 4 (#21493)
This commit is contained in:
@@ -56,4 +56,24 @@ RSpec.describe PostGuardian do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#is_in_edit_post_groups?" do
|
||||
it "returns true if the user is in edit_all_post_groups" do
|
||||
SiteSetting.edit_all_post_groups = group.id.to_s
|
||||
|
||||
expect(Guardian.new(user).is_in_edit_post_groups?).to eq(true)
|
||||
end
|
||||
|
||||
it "returns false if the user is not in edit_all_post_groups" do
|
||||
SiteSetting.edit_all_post_groups = Group::AUTO_GROUPS[:trust_level_4]
|
||||
|
||||
expect(Guardian.new(Fabricate(:trust_level_3)).is_in_edit_post_groups?).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false if the edit_all_post_groups is empty" do
|
||||
SiteSetting.edit_all_post_groups = nil
|
||||
|
||||
expect(Guardian.new(user).is_in_edit_post_groups?).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -173,6 +173,27 @@ RSpec.describe TopicGuardian do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#is_in_edit_topic_groups?" do
|
||||
it "returns true if the user is in edit_all_topic_groups" do
|
||||
group.add(user)
|
||||
SiteSetting.edit_all_topic_groups = group.id.to_s
|
||||
|
||||
expect(Guardian.new(user).is_in_edit_topic_groups?).to eq(true)
|
||||
end
|
||||
|
||||
it "returns false if the user is not in edit_all_topic_groups" do
|
||||
SiteSetting.edit_all_topic_groups = Group::AUTO_GROUPS[:trust_level_4]
|
||||
|
||||
expect(Guardian.new(tl3_user).is_in_edit_topic_groups?).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false if the edit_all_topic_groups is empty" do
|
||||
SiteSetting.edit_all_topic_groups = nil
|
||||
|
||||
expect(Guardian.new(user).is_in_edit_topic_groups?).to eq(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#can_review_topic?" do
|
||||
it "returns false for TL4 users" do
|
||||
topic = Fabricate(:topic)
|
||||
|
||||
@@ -1626,11 +1626,6 @@ RSpec.describe Guardian do
|
||||
expect(Guardian.new(trust_level_4).can_edit?(post)).to be_truthy
|
||||
end
|
||||
|
||||
it "returns false as a TL4 user if trusted_users_can_edit_others is false" do
|
||||
SiteSetting.trusted_users_can_edit_others = false
|
||||
expect(Guardian.new(trust_level_4).can_edit?(post)).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false when trying to edit a topic with no trust" do
|
||||
SiteSetting.min_trust_to_edit_post = 2
|
||||
post.user.trust_level = 1
|
||||
@@ -1876,11 +1871,6 @@ RSpec.describe Guardian do
|
||||
expect(Guardian.new(trust_level_3).can_edit?(topic)).to eq(true)
|
||||
end
|
||||
|
||||
it "is false at TL3, if `trusted_users_can_edit_others` is false" do
|
||||
SiteSetting.trusted_users_can_edit_others = false
|
||||
expect(Guardian.new(trust_level_3).can_edit?(topic)).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false when the category is read only" do
|
||||
topic.category.set_permissions(everyone: :readonly)
|
||||
topic.category.save
|
||||
@@ -1930,9 +1920,14 @@ RSpec.describe Guardian do
|
||||
expect(Guardian.new(trust_level_4).can_edit?(archived_topic)).to be_truthy
|
||||
end
|
||||
|
||||
it "is false at TL4, if `trusted_users_can_edit_others` is false" do
|
||||
SiteSetting.trusted_users_can_edit_others = false
|
||||
expect(Guardian.new(trust_level_4).can_edit?(archived_topic)).to eq(false)
|
||||
it "returns true if the user is in edit_all_post_groups" do
|
||||
SiteSetting.edit_all_post_groups = "14"
|
||||
expect(Guardian.new(trust_level_4).can_edit?(archived_topic)).to eq(true)
|
||||
end
|
||||
|
||||
it "returns false if the user is not in edit_all_post_groups" do
|
||||
SiteSetting.edit_all_post_groups = "14"
|
||||
expect(Guardian.new(trust_level_3).can_edit?(archived_topic)).to eq(false)
|
||||
end
|
||||
|
||||
it "returns false at trust level 3" do
|
||||
|
||||
Reference in New Issue
Block a user