mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Support designating multiple groups as mods on category (#28655)
Currently, categories support designating only 1 group as a moderation group on the category. This commit removes the one group limitation and makes it possible to designate multiple groups as mods on a category. Internal topic: t/124648.
This commit is contained in:
@@ -136,17 +136,14 @@ class Guardian
|
||||
return false if !category
|
||||
return false if !category_group_moderation_allowed?
|
||||
|
||||
reviewable_by_group_id = category.reviewable_by_group_id
|
||||
return false if reviewable_by_group_id.blank?
|
||||
@group_moderator_categories ||= {}
|
||||
|
||||
@category_group_moderator_groups ||= {}
|
||||
|
||||
if @category_group_moderator_groups.key?(reviewable_by_group_id)
|
||||
@category_group_moderator_groups[reviewable_by_group_id]
|
||||
if @group_moderator_categories.key?(category.id)
|
||||
@group_moderator_categories[category.id]
|
||||
else
|
||||
@category_group_moderator_groups[
|
||||
reviewable_by_group_id
|
||||
] = category_group_moderator_scope.exists?("categories.id": category.id)
|
||||
@group_moderator_categories[category.id] = category_group_moderator_scope.exists?(
|
||||
id: category.id,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -692,8 +689,9 @@ class Guardian
|
||||
end
|
||||
|
||||
def category_group_moderator_scope
|
||||
Category.joins(
|
||||
"INNER JOIN group_users ON group_users.group_id = categories.reviewable_by_group_id",
|
||||
).where("group_users.user_id = ?", user.id)
|
||||
Category
|
||||
.joins(:category_moderation_groups)
|
||||
.joins("INNER JOIN group_users ON group_users.group_id = category_moderation_groups.group_id")
|
||||
.where("group_users.user_id": user.id)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user