diff --git a/ui/app/controllers/vault/cluster/secrets/backend/list.js b/ui/app/controllers/vault/cluster/secrets/backend/list.js index 344fd2167b..42c5008d99 100644 --- a/ui/app/controllers/vault/cluster/secrets/backend/list.js +++ b/ui/app/controllers/vault/cluster/secrets/backend/list.js @@ -11,9 +11,12 @@ import BackendCrumbMixin from 'vault/mixins/backend-crumb'; import ListController from 'core/mixins/list-controller'; import { keyIsFolder } from 'core/utils/key-utils'; import engineDisplayData from 'vault/helpers/engines-display-data'; +import { task } from 'ember-concurrency'; export default Controller.extend(ListController, BackendCrumbMixin, { flashMessages: service(), + api: service(), + router: service(), queryParams: ['page', 'pageFilter', 'tab'], tab: '', @@ -71,4 +74,20 @@ export default Controller.extend(ListController, BackendCrumbMixin, { }); }, }, + + disableEngine: task(function* (engine) { + const { engineType, id, path } = engine; + try { + yield this.api.sys.mountsDisableSecretsEngine(id); + this.flashMessages.success(`The ${engineType} Secrets Engine at ${path} has been disabled.`); + this.router.transitionTo('vault.cluster.secrets.backends'); + } catch (err) { + const { message } = yield this.api.parseError(err); + this.flashMessages.danger( + `There was an error disabling the ${engineType} Secrets Engines at ${path}: ${message}.` + ); + } finally { + this.engineToDisable = null; + } + }).drop(), }); diff --git a/ui/app/templates/vault/cluster/secrets/backend/list.hbs b/ui/app/templates/vault/cluster/secrets/backend/list.hbs index 265c3f0e40..e102792606 100644 --- a/ui/app/templates/vault/cluster/secrets/backend/list.hbs +++ b/ui/app/templates/vault/cluster/secrets/backend/list.hbs @@ -64,7 +64,11 @@ Configure - Delete + Delete +{{/if}} \ No newline at end of file