diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /app/models/members | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'app/models/members')
-rw-r--r-- | app/models/members/group_member.rb | 11 | ||||
-rw-r--r-- | app/models/members/project_member.rb | 2 |
2 files changed, 10 insertions, 3 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? diff --git a/app/models/members/project_member.rb b/app/models/members/project_member.rb index fa2e0cb8198..833b27756ab 100644 --- a/app/models/members/project_member.rb +++ b/app/models/members/project_member.rb @@ -9,7 +9,7 @@ class ProjectMember < Member default_value_for :source_type, SOURCE_TYPE validates :source_type, format: { with: /\AProject\z/ } validates :access_level, inclusion: { in: Gitlab::Access.values } - default_scope { where(source_type: SOURCE_TYPE) } + default_scope { where(source_type: SOURCE_TYPE) } # rubocop:disable Cop/DefaultScope scope :in_project, ->(project) { where(source_id: project.id) } scope :in_namespaces, ->(groups) do |