From 52ad49ef9ccecf412556e2bd05fcdf6b7e270f5d Mon Sep 17 00:00:00 2001 From: Mireya Andres Date: Tue, 21 Jan 2025 22:45:28 +0800 Subject: [PATCH 1/2] Add authentication log entries to job token allowlist This is developed under the `authentication_logs_migration_for_allowlist` feature flag. --- .../autopopulate_allowlist_modal.vue | 145 ++++++++++++++++++ .../components/inbound_token_access.vue | 20 ++- .../autopopulate_allowlist.mutation.graphql | 6 + locale/gitlab.pot | 21 +++ .../token_access/autopopulate_modal_spec.js | 121 +++++++++++++++ .../token_access/inbound_token_access_spec.js | 56 +++++-- spec/frontend/token_access/mock_data.js | 19 +++ 7 files changed, 376 insertions(+), 12 deletions(-) create mode 100644 app/assets/javascripts/token_access/components/autopopulate_allowlist_modal.vue create mode 100644 app/assets/javascripts/token_access/graphql/mutations/autopopulate_allowlist.mutation.graphql create mode 100644 spec/frontend/token_access/autopopulate_modal_spec.js diff --git a/app/assets/javascripts/token_access/components/autopopulate_allowlist_modal.vue b/app/assets/javascripts/token_access/components/autopopulate_allowlist_modal.vue new file mode 100644 index 00000000000000..c95cd0222af942 --- /dev/null +++ b/app/assets/javascripts/token_access/components/autopopulate_allowlist_modal.vue @@ -0,0 +1,145 @@ + + + diff --git a/app/assets/javascripts/token_access/components/inbound_token_access.vue b/app/assets/javascripts/token_access/components/inbound_token_access.vue index 82d3be7b9f2f72..5409c101a3fd5f 100644 --- a/app/assets/javascripts/token_access/components/inbound_token_access.vue +++ b/app/assets/javascripts/token_access/components/inbound_token_access.vue @@ -29,6 +29,7 @@ import { } from '../constants'; import TokenAccessTable from './token_access_table.vue'; import NamespaceForm from './namespace_form.vue'; +import AutopopulateAllowlistModal from './autopopulate_allowlist_modal.vue'; export default { i18n: { @@ -75,6 +76,7 @@ export default { }, ], components: { + AutopopulateAllowlistModal, GlAlert, GlButton, GlCollapsibleListbox, @@ -195,6 +197,9 @@ export default { namespace: this.namespaceToRemove?.fullPath, }); }, + showAutopopulateModal() { + return this.selectedAction === JOB_TOKEN_FORM_AUTOPOPULATE_AUTH_LOG; + }, }, methods: { hideSelectedAction() { @@ -265,13 +270,18 @@ export default { this.refetchGroupsAndProjects(); return Promise.resolve(); }, + refetchAllowlist() { + this.$apollo.queries.groupsAndProjectsWithAccess.refetch(); + this.hideSelectedAction(); + }, refetchGroupsAndProjects() { this.$apollo.queries.groupsAndProjectsWithAccess.refetch(); }, selectAction(action, showFormFn) { - // TODO: render autopopulate modal when selected this.selectedAction = action; - showFormFn(); + if (action === JOB_TOKEN_FORM_ADD_GROUP_OR_PROJECT) { + showFormFn(); + } }, showNamespaceForm(namespace, showFormFn) { this.namespaceToEdit = namespace; @@ -289,6 +299,12 @@ export default {