vault/ui/app/components/secret-list/database-list-item.js
hashicorp-copywrite[bot] 0b12cdcfd1
[COMPLIANCE] License changes (#22290)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License.

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* add missing license headers

* Update copyright file headers to BUS-1.1

* Fix test that expected exact offset on hcl file

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Sarah Thompson <sthompson@hashicorp.com>
Co-authored-by: Brian Kassouf <bkassouf@hashicorp.com>
2023-08-10 18:14:03 -07:00

80 lines
2.2 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
/**
* @module DatabaseListItem
* DatabaseListItem components are used for the list items for the Database Secret Engines for Roles.
* This component automatically handles read-only list items if capabilities are not granted or the item is internal only.
*
* @example
* ```js
* <DatabaseListItem @item={item} />
* ```
* @param {object} item - item refers to the model item used on the list item partial
*/
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
export default class DatabaseListItem extends Component {
@tracked roleType = '';
@service store;
@service flashMessages;
get keyTypeValue() {
const item = this.args.item;
// basing this on path in case we want to remove 'type' later
if (item.path === 'roles') {
return 'dynamic';
} else if (item.path === 'static-roles') {
return 'static';
} else {
return '';
}
}
@action
resetConnection(id) {
const { backend } = this.args.item;
const adapter = this.store.adapterFor('database/connection');
adapter
.resetConnection(backend, id)
.then(() => {
this.flashMessages.success(`Success: ${id} connection was reset`);
})
.catch((e) => {
this.flashMessages.danger(e.errors);
});
}
@action
rotateRootCred(id) {
const { backend } = this.args.item;
const adapter = this.store.adapterFor('database/connection');
adapter
.rotateRootCredentials(backend, id)
.then(() => {
this.flashMessages.success(`Success: ${id} connection was rotated`);
})
.catch((e) => {
this.flashMessages.danger(e.errors);
});
}
@action
rotateRoleCred(id) {
const { backend } = this.args.item;
const adapter = this.store.adapterFor('database/credential');
adapter
.rotateRoleCredentials(backend, id)
.then(() => {
this.flashMessages.success(`Success: Credentials for ${id} role were rotated`);
})
.catch((e) => {
this.flashMessages.danger(e.errors);
});
}
}