diff options
Diffstat (limited to 'app/models/members/group_member.rb')
-rw-r--r-- | app/models/members/group_member.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index 431a2ccf416..9a916cd40ae 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -13,12 +13,19 @@ class GroupMember < Member # Make sure group member points only to group as it source default_value_for :source_type, SOURCE_TYPE validates :source_type, format: { with: /\ANamespace\z/ } - default_scope { where(source_type: SOURCE_TYPE) } + default_scope { where(source_type: SOURCE_TYPE) } # rubocop:disable Cop/DefaultScope scope :of_groups, ->(groups) { where(source_id: groups.select(:id)) } - scope :count_users_by_group_id, -> { joins(:user).group(:source_id).count } scope :of_ldap_type, -> { where(ldap: true) } + scope :count_users_by_group_id, -> do + if Feature.enabled?(:optimized_count_users_by_group_id) + group(:source_id).count + else + joins(:user).group(:source_id).count + end + end + after_create :update_two_factor_requirement, unless: :invite? after_destroy :update_two_factor_requirement, unless: :invite? |