From edaa33dee2ff2f7ea3fac488d41558eb5f86d68c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 20 Jan 2022 09:16:11 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-7-stable-ee --- app/controllers/groups/application_controller.rb | 12 +++++++++ app/controllers/groups/boards_controller.rb | 1 - .../dependency_proxy_for_containers_controller.rb | 30 +++++----------------- app/controllers/groups/packages_controller.rb | 5 ++++ app/controllers/groups/runners_controller.rb | 7 +++-- .../groups/settings/access_tokens_controller.rb | 18 +++++++++++++ 6 files changed, 45 insertions(+), 28 deletions(-) create mode 100644 app/controllers/groups/settings/access_tokens_controller.rb (limited to 'app/controllers/groups') diff --git a/app/controllers/groups/application_controller.rb b/app/controllers/groups/application_controller.rb index ab67a007bd9..f9c875b80b2 100644 --- a/app/controllers/groups/application_controller.rb +++ b/app/controllers/groups/application_controller.rb @@ -37,6 +37,18 @@ class Groups::ApplicationController < ApplicationController end end + def authorize_admin_group_runners! + unless can?(current_user, :admin_group_runners, group) + render_404 + end + end + + def authorize_read_group_runners! + unless can?(current_user, :read_group_runners, group) + render_404 + end + end + def authorize_create_deploy_token! unless can?(current_user, :create_deploy_token, group) render_404 diff --git a/app/controllers/groups/boards_controller.rb b/app/controllers/groups/boards_controller.rb index 3fbcb2fd7aa..6de77450a46 100644 --- a/app/controllers/groups/boards_controller.rb +++ b/app/controllers/groups/boards_controller.rb @@ -9,7 +9,6 @@ class Groups::BoardsController < Groups::ApplicationController before_action do push_frontend_feature_flag(:issue_boards_filtered_search, group, default_enabled: :yaml) push_frontend_feature_flag(:board_multi_select, group, default_enabled: :yaml) - push_frontend_feature_flag(:swimlanes_buffered_rendering, group, default_enabled: :yaml) push_frontend_feature_flag(:iteration_cadences, group, default_enabled: :yaml) experiment(:prominent_create_board_btn, subject: current_user) do |e| e.use { } diff --git a/app/controllers/groups/dependency_proxy_for_containers_controller.rb b/app/controllers/groups/dependency_proxy_for_containers_controller.rb index 171314b5f26..00839583ecc 100644 --- a/app/controllers/groups/dependency_proxy_for_containers_controller.rb +++ b/app/controllers/groups/dependency_proxy_for_containers_controller.rb @@ -33,17 +33,15 @@ class Groups::DependencyProxyForContainersController < ::Groups::DependencyProxy end def blob - return blob_via_workhorse if Feature.enabled?(:dependency_proxy_workhorse, group, default_enabled: :yaml) - - result = DependencyProxy::FindOrCreateBlobService - .new(group, image, token, params[:sha]).execute + blob = @group.dependency_proxy_blobs.find_by_file_name(blob_file_name) - if result[:status] == :success - event_name = tracking_event_name(object_type: :blob, from_cache: result[:from_cache]) + if blob.present? + event_name = tracking_event_name(object_type: :blob, from_cache: true) track_package_event(event_name, :dependency_proxy, namespace: group, user: auth_user) - send_upload(result[:blob].file) + + send_upload(blob.file) else - head result[:http_status] + send_dependency(token_header, DependencyProxy::Registry.blob_url(image, params[:sha]), blob_file_name) end end @@ -99,19 +97,6 @@ class Groups::DependencyProxyForContainersController < ::Groups::DependencyProxy private - def blob_via_workhorse - blob = @group.dependency_proxy_blobs.find_by_file_name(blob_file_name) - - if blob.present? - event_name = tracking_event_name(object_type: :blob, from_cache: true) - track_package_event(event_name, :dependency_proxy, namespace: group, user: auth_user) - - send_upload(blob.file) - else - send_dependency(token_header, DependencyProxy::Registry.blob_url(image, params[:sha]), blob_file_name) - end - end - def send_manifest(manifest, from_cache:) response.headers[DependencyProxy::Manifest::DIGEST_HEADER] = manifest.digest response.headers['Content-Length'] = manifest.size @@ -160,8 +145,7 @@ class Groups::DependencyProxyForContainersController < ::Groups::DependencyProxy end def dependency_proxy - @dependency_proxy ||= - group.dependency_proxy_setting || group.create_dependency_proxy_setting + @dependency_proxy ||= group.dependency_proxy_setting end def ensure_group diff --git a/app/controllers/groups/packages_controller.rb b/app/controllers/groups/packages_controller.rb index 47f1816cc4c..1f3d80260ed 100644 --- a/app/controllers/groups/packages_controller.rb +++ b/app/controllers/groups/packages_controller.rb @@ -6,6 +6,11 @@ module Groups feature_category :package_registry + # The show action renders index to allow frontend routing to work on page refresh + def show + render :index + end + private def verify_packages_enabled! diff --git a/app/controllers/groups/runners_controller.rb b/app/controllers/groups/runners_controller.rb index 5c21c7b023c..f602d02a165 100644 --- a/app/controllers/groups/runners_controller.rb +++ b/app/controllers/groups/runners_controller.rb @@ -1,9 +1,8 @@ # frozen_string_literal: true class Groups::RunnersController < Groups::ApplicationController - # TODO Proper policies, such as `read_group_runners, should be implemented per - # https://gitlab.com/gitlab-org/gitlab/-/issues/334802 - before_action :authorize_admin_group! + before_action :authorize_read_group_runners!, only: [:index, :show] + before_action :authorize_admin_group_runners!, only: [:edit, :update, :destroy, :pause, :resume] before_action :runner_list_group_view_vue_ui_enabled, only: [:index] before_action :runner, only: [:edit, :update, :destroy, :pause, :resume, :show] @@ -17,7 +16,7 @@ class Groups::RunnersController < Groups::ApplicationController end def runner_list_group_view_vue_ui_enabled - return render_404 unless Feature.enabled?(:runner_list_group_view_vue_ui, group, default_enabled: :yaml) + render_404 unless Feature.enabled?(:runner_list_group_view_vue_ui, group, default_enabled: :yaml) end def show diff --git a/app/controllers/groups/settings/access_tokens_controller.rb b/app/controllers/groups/settings/access_tokens_controller.rb new file mode 100644 index 00000000000..b9ab2e008cc --- /dev/null +++ b/app/controllers/groups/settings/access_tokens_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Groups + module Settings + class AccessTokensController < Groups::ApplicationController + include AccessTokensActions + + layout 'group_settings' + feature_category :authentication_and_authorization + + alias_method :resource, :group + + def resource_access_tokens_path + group_settings_access_tokens_path + end + end + end +end -- cgit v1.2.1