mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-18 04:27:02 +02:00
* Remove component: diff version selector * delete SecretVersionMenu * remove secret logic from GetCredentialsCard * remove DiffVersionSelector hbs file and references * delete more css for diff version view * remove diff route * fix credential card selector * ui: refactor SecretFormShow (#22723) * refactor secret form show * fix selector typo * remove version route (#22738) * Remove old KV2 delete things (#23015) * remove kv2 old delete things * comment * Remove old metadata (#22747) * wip to remove metadata * review comments * UI/remove kv2 secret create or update (#23039) * remove is v2 param * permissions clean up * remove version things * remove excess from form show * clean up * created time was never a thing for cubbyhole, confirmed on api * update tune test * fix control group tests: * Remove kv v2 models (#23087) * remove is v2 param * permissions clean up * remove version things * remove excess from form show * clean up * created time was never a thing for cubbyhole, confirmed on api * update tune test * fix control group tests: * remove models * Update ui/app/models/secret-engine.js Co-authored-by: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com> * blah prettier --------- Co-authored-by: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com> * UI/config update (#23111) * sweep through clean up * remove component * remove unused selectors * remove unncessary --------- Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: clairebontempo@gmail.com <clairebontempo@gmail.com> Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com> Co-authored-by: Angel Garbarino <angel@hashicorp.com>
79 lines
2.4 KiB
JavaScript
79 lines
2.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
/**
|
|
* @module SecretEditToolbar
|
|
* SecretEditToolbar component is the toolbar component displaying the JSON toggle and the actions like delete in the show mode.
|
|
*
|
|
* @example
|
|
* ```js
|
|
* <SecretEditToolbar
|
|
* @mode={{mode}}
|
|
* @model={{this.model}}
|
|
* @isWriteWithoutRead={{isWriteWithoutRead}}
|
|
* @secretDataIsAdvanced={{secretDataIsAdvanced}}
|
|
* @showAdvancedMode={{showAdvancedMode}}
|
|
* @modelForData={{this.modelForData}}
|
|
* @canUpdateSecret={{canUpdateSecret}}
|
|
* @editActions={{hash
|
|
toggleAdvanced=(action "toggleAdvanced")
|
|
refresh=(action "refresh")
|
|
}}
|
|
* />
|
|
* ```
|
|
|
|
* @param {string} mode - show, create, edit. The view.
|
|
* @param {object} model - the model passed from the parent secret-edit
|
|
* @param {boolean} isWriteWithoutRead - boolean describing permissions
|
|
* @param {boolean} secretDataIsAdvanced - used to determine if show JSON toggle
|
|
* @param {boolean} showAdvancedMode - used for JSON toggle
|
|
* @param {object} modelForData - a modified version of the model with secret data
|
|
* @param {boolean} canUpdateSecret - permissions to hide/show edit secret button.
|
|
* @param {object} editActions - actions passed from parent to child
|
|
*/
|
|
/* eslint ember/no-computed-properties-in-native-classes: 'warn' */
|
|
import Component from '@glimmer/component';
|
|
import { action } from '@ember/object';
|
|
import { inject as service } from '@ember/service';
|
|
import { tracked } from '@glimmer/tracking';
|
|
import { task } from 'ember-concurrency';
|
|
import { waitFor } from '@ember/test-waiters';
|
|
|
|
export default class SecretEditToolbar extends Component {
|
|
@service store;
|
|
@service router;
|
|
@service flashMessages;
|
|
|
|
@tracked wrappedData = null;
|
|
|
|
@action
|
|
clearWrappedData() {
|
|
this.wrappedData = null;
|
|
}
|
|
|
|
@action
|
|
handleDelete() {
|
|
this.args.model.destroyRecord().then(() => {
|
|
this.router.transitionTo('vault.cluster.secrets.backend.list-root');
|
|
});
|
|
}
|
|
|
|
@task
|
|
@waitFor
|
|
*wrapSecret() {
|
|
const { id } = this.args.modelForData;
|
|
const { backend } = this.args.model;
|
|
const wrapTTL = { wrapTTL: 1800 };
|
|
|
|
try {
|
|
const resp = yield this.store.adapterFor('secret').queryRecord(null, null, { backend, id, ...wrapTTL });
|
|
this.wrappedData = resp.wrap_info.token;
|
|
this.flashMessages.success('Secret successfully wrapped!');
|
|
} catch (e) {
|
|
this.flashMessages.danger('Could not wrap secret.');
|
|
}
|
|
}
|
|
}
|