From 59f0815c9d42a8d53671dcfffaf88c89b634cddd Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Tue, 21 Jun 2022 23:40:54 +0530 Subject: [PATCH] FIX: tag groups were not visible to allowed group members (#17183) https://meta.discourse.org/t/tags-in-tag-groups-not-visible-to-assigned-user-group/230025/ --- app/models/tag_group.rb | 4 ++-- spec/models/tag_group_spec.rb | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/models/tag_group.rb b/app/models/tag_group.rb index c56392ab775..c80c65f95c7 100644 --- a/app/models/tag_group.rb +++ b/app/models/tag_group.rb @@ -95,10 +95,10 @@ class TagGroup < ActiveRecord::Base OR id NOT IN (SELECT tag_group_id FROM category_tag_groups) ) - AND id IN (SELECT tag_group_id FROM tag_group_permissions WHERE group_id = ?) + AND id IN (SELECT tag_group_id FROM tag_group_permissions WHERE group_id IN (?)) SQL - TagGroup.where(filter_sql, guardian.allowed_category_ids, Group::AUTO_GROUPS[:everyone]) + TagGroup.where(filter_sql, guardian.allowed_category_ids, DiscourseTagging.permitted_group_ids(guardian)) end end end diff --git a/spec/models/tag_group_spec.rb b/spec/models/tag_group_spec.rb index 264160bcc79..758ff9e3016 100644 --- a/spec/models/tag_group_spec.rb +++ b/spec/models/tag_group_spec.rb @@ -8,10 +8,12 @@ describe TagGroup do fab!(:moderator) { Fabricate(:moderator) } fab!(:group) { Fabricate(:group) } + fab!(:beta_group) { Fabricate(:group) } fab!(:everyone_tag_group) { Fabricate(:tag_group, name: 'Visible & usable by everyone', tag_names: ['foo-bar']) } fab!(:visible_tag_group) { Fabricate(:tag_group, name: 'Visible by everyone, usable by staff', tag_names: ['foo']) } fab!(:staff_only_tag_group) { Fabricate(:tag_group, name: 'Staff only', tag_names: ['bar']) } + fab!(:beta_only_tag_group) { Fabricate(:tag_group, name: 'Beta only', tag_names: ['beta']) } fab!(:public_tag_group) { Fabricate(:tag_group, name: 'Public', tag_names: ['public1']) } fab!(:private_tag_group) { Fabricate(:tag_group, name: 'Private', tag_names: ['privatetag1']) } @@ -32,6 +34,9 @@ describe TagGroup do group.add(user2) group.save! + beta_group.add(user1) + beta_group.save! + staff_category.set_permissions(admins: :full) staff_category.save! @@ -50,6 +55,9 @@ describe TagGroup do staff_only_tag_group.permissions = [[staff, full]] staff_only_tag_group.save! + + beta_only_tag_group.permissions = [[beta_group, full]] + beta_only_tag_group.save! end shared_examples "correct visible tag groups" do @@ -63,8 +71,8 @@ describe TagGroup do ]) expect(TagGroup.visible(Guardian.new(user1)).pluck(:name)).to match_array([ - public_tag_group.name, unrestricted_tag_group.name, everyone_tag_group.name, - visible_tag_group.name, + public_tag_group.name, unrestricted_tag_group.name, beta_only_tag_group.name, + everyone_tag_group.name, visible_tag_group.name, ]) expect(TagGroup.visible(Guardian.new(nil)).pluck(:name)).to match_array([