vault/ui/lib/pki/addon/routes/overview.js
Jordan Reimer fd1f95439d
Rename PKI check-config Decorator (#21241)
* renames pki check-config decorator to check-issuers

* reverts check-issuers decorator function name change
2023-06-14 16:22:33 -06:00

73 lines
2.1 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { withConfig } from 'pki/decorators/check-issuers';
import { hash } from 'rsvp';
export const PKI_DEFAULT_EMPTY_STATE_MSG =
"This PKI mount hasn't yet been configured with a certificate issuer.";
export const getCliMessage = (msg) => {
if (!msg) return PKI_DEFAULT_EMPTY_STATE_MSG;
return `${PKI_DEFAULT_EMPTY_STATE_MSG} There are existing ${msg}. Use the CLI to perform any operations with them until an issuer is configured.`;
};
@withConfig()
export default class PkiOverviewRoute extends Route {
@service secretMountPath;
@service auth;
@service store;
async fetchAllCertificates() {
try {
return await this.store.query('pki/certificate/base', { backend: this.secretMountPath.currentPath });
} catch (e) {
return e.httpStatus;
}
}
async fetchAllRoles() {
try {
return await this.store.query('pki/role', { backend: this.secretMountPath.currentPath });
} catch (e) {
return e.httpStatus;
}
}
async fetchAllIssuers() {
try {
return await this.store.query('pki/issuer', { backend: this.secretMountPath.currentPath });
} catch (e) {
return e.httpStatus;
}
}
async model() {
return hash({
hasConfig: this.shouldPromptConfig,
engine: this.modelFor('application'),
roles: this.fetchAllRoles(),
issuers: this.fetchAllIssuers(),
certificates: this.fetchAllCertificates(),
});
}
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const roles = resolvedModel.roles;
const certificates = resolvedModel.certificates;
controller.notConfiguredMessage = getCliMessage();
if (roles?.length) controller.notConfiguredMessage = getCliMessage('roles');
if (certificates?.length) controller.notConfiguredMessage = getCliMessage('certificates');
if (roles?.length && certificates?.length)
controller.notConfiguredMessage = getCliMessage('roles and certificates');
}
}