summaryrefslogtreecommitdiff
path: root/app/models/group.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-20 13:49:51 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-20 13:49:51 +0000
commit71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch)
tree6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /app/models/group.rb
parenta7253423e3403b8c08f8a161e5937e1488f5f407 (diff)
downloadgitlab-ce-71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e.tar.gz
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'app/models/group.rb')
-rw-r--r--app/models/group.rb30
1 files changed, 20 insertions, 10 deletions
diff --git a/app/models/group.rb b/app/models/group.rb
index c7ad4d61ddb..7e09280dfff 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -21,9 +21,12 @@ class Group < Namespace
include ChronicDurationAttribute
include RunnerTokenExpirationInterval
include Todoable
+ include IssueParent
extend ::Gitlab::Utils::Override
+ README_PROJECT_PATH = 'gitlab-profile'
+
def self.sti_name
'Group'
end
@@ -43,7 +46,10 @@ class Group < Namespace
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]) },
foreign_key: :member_namespace_id, inverse_of: :group, class_name: 'GroupMember'
+
has_many :members_and_requesters, as: :source, class_name: 'GroupMember'
+ has_many :namespace_members_and_requesters, -> { unscope(where: %i[source_id source_type]) },
+ foreign_key: :member_namespace_id, inverse_of: :group, class_name: 'GroupMember'
has_many :milestones
has_many :integrations
@@ -422,15 +428,14 @@ class Group < Namespace
)
end
- def add_member(user, access_level, current_user: nil, expires_at: nil, ldap: false, blocking_refresh: true)
+ def add_member(user, access_level, current_user: nil, expires_at: nil, ldap: false)
Members::Groups::CreatorService.add_member( # rubocop:disable CodeReuse/ServiceClass
self,
user,
access_level,
current_user: current_user,
expires_at: expires_at,
- ldap: ldap,
- blocking_refresh: blocking_refresh
+ ldap: ldap
)
end
@@ -539,7 +544,6 @@ class Group < Namespace
# rubocop: disable CodeReuse/ServiceClass
def refresh_members_authorized_projects(
- blocking: true,
priority: UserProjectAccessChangedService::HIGH_PRIORITY,
direct_members_only: false
)
@@ -552,7 +556,7 @@ class Group < Namespace
UserProjectAccessChangedService
.new(user_ids)
- .execute(blocking: blocking, priority: priority)
+ .execute(priority: priority)
end
# rubocop: enable CodeReuse/ServiceClass
@@ -748,7 +752,7 @@ class Group < Namespace
end
def refresh_project_authorizations
- refresh_members_authorized_projects(blocking: false)
+ refresh_members_authorized_projects
end
# each existing group needs to have a `runners_token`.
@@ -915,10 +919,6 @@ class Group < Namespace
feature_flag_enabled_for_self_or_ancestor?(:work_items_mvc_2)
end
- def work_items_create_from_markdown_feature_flag_enabled?
- feature_flag_enabled_for_self_or_ancestor?(:work_items_create_from_markdown)
- end
-
def usage_quotas_enabled?
::Feature.enabled?(:usage_quotas_for_all_editions, self) && root?
end
@@ -948,6 +948,16 @@ class Group < Namespace
direct_and_indirect_members.find_each(&:update_two_factor_requirement)
end
+ def readme_project
+ projects.find_by(path: README_PROJECT_PATH)
+ end
+ strong_memoize_attr :readme_project
+
+ def group_readme
+ readme_project&.repository&.readme
+ end
+ strong_memoize_attr :group_readme
+
private
def feature_flag_enabled_for_self_or_ancestor?(feature_flag)