mirror of
https://github.com/discourse/discourse.git
synced 2025-03-21 16:55:32 +08:00
FIX: any subcategory permissions are valid if everyone has access to parent category (#7097)
This commit is contained in:
parent
bb39a6f7d7
commit
fea5d4f3ec
@ -658,6 +658,9 @@ class Category < ActiveRecord::Base
|
||||
|
||||
def check_permissions_compatibility(parent_permissions, child_permissions)
|
||||
parent_groups = parent_permissions.map(&:first)
|
||||
|
||||
return if parent_groups.include?(Group[:everyone].id)
|
||||
|
||||
child_groups = child_permissions.map(&:first)
|
||||
only_in_subcategory = child_groups - parent_groups
|
||||
|
||||
|
@ -779,8 +779,8 @@ describe Category do
|
||||
expect(subcategory.valid?).to eq(true)
|
||||
end
|
||||
|
||||
it "is valid if no permissions are set on parent" do
|
||||
parent_category.set_permissions(everyone: :full)
|
||||
it "is valid if everyone has access to parent category" do
|
||||
parent_category.set_permissions(everyone: :readonly)
|
||||
parent_category.save!
|
||||
|
||||
subcategory.set_permissions(group => :create_post, group2 => :create_post)
|
||||
@ -814,10 +814,10 @@ describe Category do
|
||||
|
||||
end
|
||||
|
||||
it "is valid if no permissions set on parent" do
|
||||
it "is valid if everyone has access to parent category" do
|
||||
subcategory.set_permissions(group => :create_post)
|
||||
subcategory.save
|
||||
parent_category.set_permissions(everyone: :full)
|
||||
parent_category.set_permissions(everyone: :readonly)
|
||||
|
||||
expect(parent_category.valid?).to eq(true)
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user