diff options
Diffstat (limited to 'app/services/groups/participants_service.rb')
-rw-r--r-- | app/services/groups/participants_service.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/app/services/groups/participants_service.rb b/app/services/groups/participants_service.rb index 1de2b3c5a2e..e939d27d464 100644 --- a/app/services/groups/participants_service.rb +++ b/app/services/groups/participants_service.rb @@ -2,6 +2,7 @@ module Groups class ParticipantsService < Groups::BaseService + include Gitlab::Utils::StrongMemoize include Users::ParticipableService def execute(noteable) @@ -17,15 +18,20 @@ module Groups render_participants_as_hash(participants.uniq) end + private + def all_members - count = group_members.count - [{ username: "all", name: "All Group Members", count: count }] + return [] if group.nil? || Feature.enabled?(:disable_all_mention) + + [{ username: "all", name: "All Group Members", count: group.users_count }] end def group_members return [] unless group - @group_members ||= sorted(group.direct_and_indirect_users) + sorted( + group.direct_and_indirect_users(share_with_groups: group.member?(current_user)) + ) end end end |