Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/group.rb')
-rw-r--r--app/models/group.rb25
1 files changed, 15 insertions, 10 deletions
diff --git a/app/models/group.rb b/app/models/group.rb
index 9df3c143e0c..9330ffef156 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -35,11 +35,12 @@ class Group < Namespace
foreign_key: :member_namespace_id, inverse_of: :group, class_name: 'GroupMember'
alias_method :members, :group_members
- has_many :users, through: :group_members
- has_many :owners,
- -> { where(members: { access_level: Gitlab::Access::OWNER }) },
- through: :all_group_members,
- source: :user
+ has_many :users, -> { allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/422405") },
+ through: :group_members
+ has_many :owners, -> {
+ where(members: { access_level: Gitlab::Access::OWNER })
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/422405")
+ }, through: :all_group_members, source: :user
has_many :requesters, -> { where.not(requested_at: nil) }, dependent: :destroy, as: :source, class_name: 'GroupMember' # rubocop:disable Cop/ActiveRecordDependent
has_many :namespace_requesters, -> { where.not(requested_at: nil).unscope(where: %i[source_id source_type]) },
@@ -785,8 +786,6 @@ class Group < Namespace
end
def execute_integrations(data, hooks_scope)
- return unless Feature.enabled?(:group_mentions, self)
-
integrations.public_send(hooks_scope).each do |integration| # rubocop:disable GitlabSecurity/PublicSend
integration.async_execute(data)
end
@@ -800,7 +799,9 @@ class Group < Namespace
end
def first_owner
- owners.first || parent&.first_owner || owner
+ first_owner_member = all_group_members.all_owners.order(:user_id).first
+
+ first_owner_member&.user || parent&.first_owner || owner
end
def default_branch_name
@@ -898,6 +899,10 @@ class Group < Namespace
feature_flag_enabled_for_self_or_ancestor?(:linked_work_items)
end
+ def supports_lock_on_merge?
+ feature_flag_enabled_for_self_or_ancestor?(:enforce_locked_labels_on_merge, type: :ops)
+ end
+
def usage_quotas_enabled?
::Feature.enabled?(:usage_quotas_for_all_editions, self) && root?
end
@@ -939,12 +944,12 @@ class Group < Namespace
private
- def feature_flag_enabled_for_self_or_ancestor?(feature_flag)
+ def feature_flag_enabled_for_self_or_ancestor?(feature_flag, type: :development)
actors = [root_ancestor]
actors << self if root_ancestor != self
actors.any? do |actor|
- ::Feature.enabled?(feature_flag, actor)
+ ::Feature.enabled?(feature_flag, actor, type: type)
end
end