diff options
Diffstat (limited to 'app/helpers/projects_helper.rb')
-rw-r--r-- | app/helpers/projects_helper.rb | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index c3f22dc7693..6112d05f37d 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true module ProjectsHelper + include Gitlab::Utils::StrongMemoize + def project_incident_management_setting @project_incident_management_setting ||= @project.incident_management_setting || @project.build_incident_management_setting @@ -331,22 +333,6 @@ module ProjectsHelper false end - def share_project_description(project) - share_with_group = project.allowed_to_share_with_group? - share_with_members = !membership_locked? - - description = - if share_with_group && share_with_members - _("You can invite a new member to %{project_name} or invite another group.") - elsif share_with_group - _("You can invite another group to %{project_name}.") - elsif share_with_members - _("You can invite a new member to %{project_name}.") - end - - html_escape(description) % { project_name: tag.strong(project.name) } - end - def metrics_external_dashboard_url @project.metrics_setting_external_dashboard_url end @@ -446,6 +432,30 @@ module ProjectsHelper configure_oauth_import_message('GitLab.com', help_page_path("integration/gitlab")) end + def show_inactive_project_deletion_banner?(project) + return false unless project.present? && project.saved? + return false unless delete_inactive_projects? + return false unless Feature.enabled?(:inactive_projects_deletion, project.root_namespace) + + project.inactive? + end + + def inactive_project_deletion_date(project) + Gitlab::InactiveProjectsDeletionWarningTracker.new(project.id).scheduled_deletion_date + end + + def show_clusters_alert?(project) + Gitlab.com? && can_admin_associated_clusters?(project) + end + + def clusters_deprecation_alert_message + if has_active_license? + s_('ClusterIntegration|The certificate-based Kubernetes integration has been deprecated and will be turned off at the end of November 2022. Please %{linkStart}migrate to the GitLab agent for Kubernetes%{linkEnd} or reach out to GitLab support.') + else + s_('ClusterIntegration|The certificate-based Kubernetes integration has been deprecated and will be turned off at the end of November 2022. Please %{linkStart}migrate to the GitLab agent for Kubernetes%{linkEnd}.') + end + end + private def configure_oauth_import_message(provider, help_url) @@ -596,6 +606,7 @@ module ProjectsHelper feature = project.project_feature { packagesEnabled: !!project.packages_enabled, + packageRegistryAccessLevel: feature.package_registry_access_level, visibilityLevel: project.visibility_level, requestAccessEnabled: !!project.request_access_enabled, issuesAccessLevel: feature.issues_access_level, @@ -736,6 +747,24 @@ module ProjectsHelper link_to(name, url) end end + + def delete_inactive_projects? + strong_memoize(:delete_inactive_projects_setting) do + ::Gitlab::CurrentSettings.delete_inactive_projects? + end + end +end + +def can_admin_associated_clusters?(project) + can_admin_project_clusters?(project) || can_admin_group_clusters?(project) +end + +def can_admin_project_clusters?(project) + project.clusters.any? && can?(current_user, :admin_cluster, project) +end + +def can_admin_group_clusters?(project) + project.group && project.group.clusters.any? && can?(current_user, :admin_cluster, project.group) end ProjectsHelper.prepend_mod_with('ProjectsHelper') |