diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
commit | 7e9c479f7de77702622631cff2628a9c8dcbc627 (patch) | |
tree | c8f718a08e110ad7e1894510980d2155a6549197 /app/controllers/groups | |
parent | e852b0ae16db4052c1c567d9efa4facc81146e88 (diff) | |
download | gitlab-ce-7e9c479f7de77702622631cff2628a9c8dcbc627.tar.gz |
Add latest changes from gitlab-org/gitlab@13-6-stable-eev13.6.0-rc42
Diffstat (limited to 'app/controllers/groups')
6 files changed, 103 insertions, 10 deletions
diff --git a/app/controllers/groups/boards_controller.rb b/app/controllers/groups/boards_controller.rb index b971c5783a8..c2d72610c66 100644 --- a/app/controllers/groups/boards_controller.rb +++ b/app/controllers/groups/boards_controller.rb @@ -7,9 +7,8 @@ class Groups::BoardsController < Groups::ApplicationController before_action :authorize_read_board!, only: [:index, :show] before_action :assign_endpoint_vars before_action do - push_frontend_feature_flag(:multi_select_board, default_enabled: true) push_frontend_feature_flag(:graphql_board_lists, group, default_enabled: false) - push_frontend_feature_flag(:boards_with_swimlanes, group, default_enabled: false) + push_frontend_feature_flag(:boards_with_swimlanes, group, default_enabled: true) end feature_category :boards diff --git a/app/controllers/groups/dependency_proxies_controller.rb b/app/controllers/groups/dependency_proxies_controller.rb new file mode 100644 index 00000000000..367dbafdd59 --- /dev/null +++ b/app/controllers/groups/dependency_proxies_controller.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Groups + class DependencyProxiesController < Groups::ApplicationController + include DependencyProxyAccess + + before_action :authorize_admin_dependency_proxy!, only: :update + before_action :dependency_proxy + + feature_category :package_registry + + def show + @blobs_count = group.dependency_proxy_blobs.count + @blobs_total_size = group.dependency_proxy_blobs.total_size + end + + def update + dependency_proxy.update(dependency_proxy_params) + + redirect_to group_dependency_proxy_path(group) + end + + private + + def dependency_proxy + @dependency_proxy ||= + group.dependency_proxy_setting || group.create_dependency_proxy_setting + end + + def dependency_proxy_params + params.require(:dependency_proxy_group_setting).permit(:enabled) + end + end +end diff --git a/app/controllers/groups/dependency_proxy_for_containers_controller.rb b/app/controllers/groups/dependency_proxy_for_containers_controller.rb new file mode 100644 index 00000000000..f46902ef90f --- /dev/null +++ b/app/controllers/groups/dependency_proxy_for_containers_controller.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +class Groups::DependencyProxyForContainersController < Groups::ApplicationController + include DependencyProxyAccess + include SendFileUpload + + before_action :ensure_token_granted! + before_action :ensure_feature_enabled! + + attr_reader :token + + feature_category :package_registry + + def manifest + result = DependencyProxy::PullManifestService.new(image, tag, token).execute + + if result[:status] == :success + render json: result[:manifest] + else + render status: result[:http_status], json: result[:message] + end + end + + def blob + result = DependencyProxy::FindOrCreateBlobService + .new(group, image, token, params[:sha]).execute + + if result[:status] == :success + send_upload(result[:blob].file) + else + head result[:http_status] + end + end + + private + + def image + params[:image] + end + + def tag + params[:tag] + end + + def dependency_proxy + @dependency_proxy ||= + group.dependency_proxy_setting || group.create_dependency_proxy_setting + end + + def ensure_feature_enabled! + render_404 unless dependency_proxy.enabled + end + + def ensure_token_granted! + result = DependencyProxy::RequestTokenService.new(image).execute + + if result[:status] == :success + @token = result[:token] + else + render status: result[:http_status], json: result[:message] + end + end +end diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb index 173a24ceb74..03d41f1dd6d 100644 --- a/app/controllers/groups/milestones_controller.rb +++ b/app/controllers/groups/milestones_controller.rb @@ -6,7 +6,7 @@ class Groups::MilestonesController < Groups::ApplicationController before_action :milestone, only: [:edit, :show, :update, :issues, :merge_requests, :participants, :labels, :destroy] before_action :authorize_admin_milestones!, only: [:edit, :new, :create, :update, :destroy] before_action do - push_frontend_feature_flag(:burnup_charts, @group) + push_frontend_feature_flag(:burnup_charts, @group, default_enabled: true) end feature_category :issue_tracking diff --git a/app/controllers/groups/settings/ci_cd_controller.rb b/app/controllers/groups/settings/ci_cd_controller.rb index 0c72c8a037b..723edc4b7e9 100644 --- a/app/controllers/groups/settings/ci_cd_controller.rb +++ b/app/controllers/groups/settings/ci_cd_controller.rb @@ -8,9 +8,6 @@ module Groups skip_cross_project_access_check :show before_action :authorize_admin_group! before_action :authorize_update_max_artifacts_size!, only: [:update] - before_action do - push_frontend_feature_flag(:new_variables_ui, @group, default_enabled: true) - end before_action :define_variables, only: [:show] feature_category :continuous_integration diff --git a/app/controllers/groups/settings/integrations_controller.rb b/app/controllers/groups/settings/integrations_controller.rb index b089cfdf341..a66372b3571 100644 --- a/app/controllers/groups/settings/integrations_controller.rb +++ b/app/controllers/groups/settings/integrations_controller.rb @@ -10,7 +10,7 @@ module Groups feature_category :integrations def index - @integrations = Service.find_or_initialize_all(Service.for_group(group)).sort_by(&:title) + @integrations = Service.find_or_initialize_all_non_project_specific(Service.for_group(group)).sort_by(&:title) end def edit @@ -21,12 +21,12 @@ module Groups private - def find_or_initialize_integration(name) - Service.find_or_initialize_integration(name, group_id: group.id) + def find_or_initialize_non_project_specific_integration(name) + Service.find_or_initialize_non_project_specific_integration(name, group_id: group.id) end def integrations_enabled? - Feature.enabled?(:group_level_integrations, group) + Feature.enabled?(:group_level_integrations, group, default_enabled: true) end def scoped_edit_integration_path(integration) |