diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-06 06:08:33 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-06 06:08:33 +0000 |
commit | 52b1470ada3118a007bc6664f72b665f80f2200e (patch) | |
tree | 6baec506af8a8e80e5cd1c53d2a348ca84b01412 /app | |
parent | 53a3791717e8925078f074b976a561c7a72b1b22 (diff) | |
download | gitlab-ce-52b1470ada3118a007bc6664f72b665f80f2200e.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
8 files changed, 46 insertions, 18 deletions
diff --git a/app/assets/javascripts/packages_and_registries/infrastructure_registry/list/components/packages_list.vue b/app/assets/javascripts/packages_and_registries/infrastructure_registry/list/components/packages_list.vue index dab4a051d0c..8b6a5c59847 100644 --- a/app/assets/javascripts/packages_and_registries/infrastructure_registry/list/components/packages_list.vue +++ b/app/assets/javascripts/packages_and_registries/infrastructure_registry/list/components/packages_list.vue @@ -81,10 +81,9 @@ export default { }, }, i18n: { - deleteModalContent: s__( - 'PackageRegistry|You are about to delete %{name}, this operation is irreversible, are you sure?', - ), - modalAction: s__('PackageRegistry|Delete package'), + deleteModalContent: s__('PackageRegistry|You are about to delete %{name}, are you sure?'), + modalTitle: s__('PackageRegistry|Delete package'), + modalAction: s__('PackageRegistry|Permanently delete'), }, }; </script> @@ -120,13 +119,13 @@ export default { <gl-modal ref="packageListDeleteModal" size="sm" - modal-id="confirm-delete-pacakge" + modal-id="confirm-delete-package" :action-primary="deleteModalActionPrimaryProps" :action-cancel="deleteModalActionCancelProps" @ok="deleteItemConfirmation" @cancel="deleteItemCanceled" > - <template #modal-title>{{ $options.i18n.modalAction }}</template> + <template #modal-title>{{ $options.i18n.modalTitle }}</template> <gl-sprintf :message="$options.i18n.deleteModalContent"> <template #name> <strong>{{ deletePackageName }}</strong> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue index e84f181e9b2..c6583b8f09f 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue @@ -122,10 +122,9 @@ export default { }, }, i18n: { - deleteModalContent: s__( - 'PackageRegistry|You are about to delete %{name}, this operation is irreversible, are you sure?', - ), - modalAction: s__('PackageRegistry|Delete package'), + deleteModalContent: s__('PackageRegistry|You are about to delete %{name}, are you sure?'), + modalTitle: s__('PackageRegistry|Delete package'), + modalAction: s__('PackageRegistry|Permanently delete'), errorMessageBodyAlert: s__( 'PackageRegistry|There was a timeout and the package was not published. Delete this package and try again.', ), @@ -172,14 +171,14 @@ export default { <gl-modal v-model="showDeleteModal" - modal-id="confirm-delete-pacakge" + modal-id="confirm-delete-package" size="sm" :action-primary="deleteModalActionPrimaryProps" :action-cancel="deleteModalActionCancelProps" @ok="deleteItemConfirmation" @cancel="deleteItemCanceled" > - <template #modal-title>{{ $options.i18n.modalAction }}</template> + <template #modal-title>{{ $options.i18n.modalTitle }}</template> <gl-sprintf :message="$options.i18n.deleteModalContent"> <template #name> <strong>{{ deletePackageName }}</strong> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue index 0225beefa13..e5420dbdccf 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue @@ -263,7 +263,7 @@ export default { }, modal: { packageDeletePrimaryAction: { - text: __('Delete'), + text: s__('PackageRegistry|Permanently delete'), attributes: [ { variant: 'danger' }, { category: 'primary' }, diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index 96afe9dbb9f..22a42d22914 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -27,11 +27,9 @@ class Projects::DeployKeysController < Projects::ApplicationController end def create - @key = DeployKeys::CreateService.new(current_user, create_params).execute(project: @project) + @key = DeployKeys::CreateService.new(current_user, create_params).execute(project: @project).present - unless @key.valid? - flash[:alert] = @key.errors.full_messages.join(', ').html_safe - end + flash[:alert] = @key.humanized_error_message unless @key.valid? redirect_to_repository end diff --git a/app/models/deploy_key.rb b/app/models/deploy_key.rb index 94ac2405f61..2563fd484f1 100644 --- a/app/models/deploy_key.rb +++ b/app/models/deploy_key.rb @@ -4,6 +4,7 @@ class DeployKey < Key include FromUnion include IgnorableColumns include PolicyActor + include Presentable has_many :deploy_keys_projects, inverse_of: :deploy_key, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent has_many :projects, through: :deploy_keys_projects diff --git a/app/presenters/deploy_key_presenter.rb b/app/presenters/deploy_key_presenter.rb new file mode 100644 index 00000000000..6f32487b6f6 --- /dev/null +++ b/app/presenters/deploy_key_presenter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class DeployKeyPresenter < KeyPresenter # rubocop:disable Gitlab/NamespacedClass + presents ::DeployKey, as: :deploy_key + + def humanized_error_message + super(type: :deploy_key) + end +end diff --git a/app/presenters/key_presenter.rb b/app/presenters/key_presenter.rb new file mode 100644 index 00000000000..e3eb5feedbf --- /dev/null +++ b/app/presenters/key_presenter.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class KeyPresenter < Gitlab::View::Presenter::Delegated # rubocop:disable Gitlab/NamespacedClass + presents ::Key, as: :key_object + + def humanized_error_message(type: :key) + if !key_object.public_key.valid? + help_link = help_page_link(_('supported SSH public key.'), 'user/ssh', 'supported-ssh-key-types') + + _('%{type} must be a %{help_link}').html_safe % { type: type.to_s.titleize, help_link: help_link } + else + key_object.errors.full_messages.join(', ').html_safe + end + end + + private + + def help_page_link(title, path, anchor) + ActionController::Base.helpers.link_to(title, help_page_path(path, anchor: anchor), + target: '_blank', rel: 'noopener noreferrer') + end +end diff --git a/app/uploaders/object_storage/cdn/google_cdn.rb b/app/uploaders/object_storage/cdn/google_cdn.rb index d34ed8ac897..91bad1f8d6b 100644 --- a/app/uploaders/object_storage/cdn/google_cdn.rb +++ b/app/uploaders/object_storage/cdn/google_cdn.rb @@ -19,7 +19,7 @@ module ObjectStorage ip = IPAddr.new(request_ip) - return false if ip.private? + return false if ip.private? || ip.link_local? || ip.loopback? !GoogleIpCache.google_ip?(request_ip) end |