FEATURE: Separated 'trusted users can edit others' setting for trust level 3 & 4 (#21493)

This commit is contained in:
Guhyoun Nam
2023-07-07 10:48:14 -05:00
committed by GitHub
parent 25a0c00e72
commit b70bd4366b
11 changed files with 114 additions and 47 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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