diff --git a/app/assets/javascripts/repository/components/header_area.vue b/app/assets/javascripts/repository/components/header_area.vue index 6268dfed47b757bd6a55b508e4fbc8436cfdf4c7..a66fa1d9ef6dfef72ab799f39683013936d1df4b 100644 --- a/app/assets/javascripts/repository/components/header_area.vue +++ b/app/assets/javascripts/repository/components/header_area.vue @@ -89,7 +89,7 @@ export default { 'showEditButton', 'showWebIdeButton', 'isGitpodEnabledForInstance', - 'showPipelineEditorUrl', + 'showPipelineEditorButton', 'webIdeUrl', 'editUrl', 'pipelineEditorUrl', @@ -430,7 +430,7 @@ export default { :show-edit-button="showEditButton" :show-web-ide-button="showWebIdeButton" :is-gitpod-enabled-for-instance="isGitpodEnabledForInstance" - :show-pipeline-editor-url="showPipelineEditorUrl" + :show-pipeline-editor-button="showPipelineEditorButton" :web-ide-url="webIDEUrl" :edit-url="editUrl" :pipeline-editor-url="pipelineEditorUrl" diff --git a/app/assets/javascripts/repository/components/header_area/blob_button_group.vue b/app/assets/javascripts/repository/components/header_area/blob_button_group.vue index 4bd729645d93812736297c4f139138ef67d5da06..6f35bb98895cc2bd45343e4fa8c05ff1f536486a 100644 --- a/app/assets/javascripts/repository/components/header_area/blob_button_group.vue +++ b/app/assets/javascripts/repository/components/header_area/blob_button_group.vue @@ -56,7 +56,7 @@ export default { text: this.$options.i18n.replace, extraAttrs: { 'data-testid': 'replace', - disabled: this.isReplaceDisabled, + disabled: this.isReplaceDisabled || !this.userPermissions.createMergeRequestIn, }, }; }, diff --git a/app/assets/javascripts/repository/components/header_area/blob_controls.vue b/app/assets/javascripts/repository/components/header_area/blob_controls.vue index 6f7c8f245d654617f5792aa775fb85f98c941209..1f475e805814e69c510ae640309337726f3cb640 100644 --- a/app/assets/javascripts/repository/components/header_area/blob_controls.vue +++ b/app/assets/javascripts/repository/components/header_area/blob_controls.vue @@ -30,6 +30,7 @@ import OpenMrBadge from '~/badges/components/open_mr_badge/open_mr_badge.vue'; import BlobOverflowMenu from 'ee_else_ce/repository/components/header_area/blob_overflow_menu.vue'; import ForkSuggestionModal from '~/repository/components/header_area/fork_suggestion_modal.vue'; import { TEXT_FILE_TYPE, EMPTY_FILE, DEFAULT_BLOB_INFO } from '../../constants'; +import { NO_MODIFY_PERMISSION_MESSAGE } from './constants'; export default { i18n: { @@ -37,6 +38,7 @@ export default { blame: __('Blame'), errorMessage: __('An error occurred while loading file controls. Refresh the page.'), archivedProjectTooltip: __('You cannot edit files in archived projects'), + noPermissionTooltip: NO_MODIFY_PERMISSION_MESSAGE, lfsFileTooltip: __('You cannot edit files stored in LFS'), }, buttonClassList: '@sm/panel:gl-w-auto gl-w-full @sm/panel:gl-mt-0 gl-mt-3', @@ -99,7 +101,7 @@ export default { }, }, }, - inject: ['currentRef'], + inject: ['currentRef', 'showWebIdeButton', 'showPipelineEditorButton'], provide() { return { blobInfo: computed(() => this.blobInfo ?? DEFAULT_BLOB_INFO.repository.blobs.nodes[0]), @@ -223,6 +225,10 @@ export default { condition: () => this.isUsingLfs, message: this.$options.i18n.lfsFileTooltip, }, + fileModifyPermission: { + condition: () => !this.showWebIdeButton, + message: this.$options.i18n.noPermissionTooltip, + }, }; }, }, @@ -299,11 +305,12 @@ export default {