mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-20 06:01:10 +02:00
* add rotate root route * add page component * add modal * fix modal image styling * add radio buttons * add jsonToCert function to pki parser * add verify function * add verify to details route * nest rotate-root under issuer/ * copy values from old root ca * pull detail info rows into a separate component * add type declaration files * add parsing error warning to rotate root component file * add comments * add capabilities to controller * update icon * revert issuer details * refactor pki info table rows * add parsedparameters to pki helper * add alert banner * update attrs, fix info rows * add endpoint to action router * update alert banner * hide toolbar from generate root display * add download buttons to toolbar * add banner getter * fix typo in issuer details * fix assertion * move alert banner after generating root to parent * rename issuer index route file * refactor routing so model can be passed from route * add confirmLeave and done button to use existin settings done form * rename serial number to differentiate between two types * fix links, update ids to issuerId not response id * update ts declaration * change variable names add comments * update existing tests * fix comment typo * add download button test * update serializer to change subject_serial_number to serial_number for backend * remove pageTitle getter * remove old arg * round 1 of testing complete.. * finish endpoint tests * finish component tests * move toolbars to parent route * add acceptance test for rotate route * add const to hold radio button string values * remove action, fix link
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { parseCertificate } from 'vault/utils/parse-pki-cert';
|
|
import { parsedParameters } from 'vault/utils/parse-pki-cert-oids';
|
|
import ApplicationSerializer from '../application';
|
|
|
|
export default class PkiIssuerSerializer extends ApplicationSerializer {
|
|
primaryKey = 'issuer_id';
|
|
|
|
constructor() {
|
|
super(...arguments);
|
|
// remove following attrs from serialization
|
|
const attrs = ['caChain', 'certificate', 'issuerId', 'keyId', ...parsedParameters];
|
|
this.attrs = attrs.reduce((attrObj, attr) => {
|
|
attrObj[attr] = { serialize: false };
|
|
return attrObj;
|
|
}, {});
|
|
}
|
|
|
|
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
|
|
if (payload.data.certificate) {
|
|
// Parse certificate back from the API and add to payload
|
|
const parsedCert = parseCertificate(payload.data.certificate);
|
|
const data = { issuer_ref: payload.issuer_id, ...payload.data, ...parsedCert };
|
|
const json = super.normalizeResponse(store, primaryModelClass, { ...payload, data }, id, requestType);
|
|
return json;
|
|
}
|
|
return super.normalizeResponse(...arguments);
|
|
}
|
|
|
|
// rehydrate each issuers model so all model attributes are accessible from the LIST response
|
|
normalizeItems(payload) {
|
|
if (payload.data) {
|
|
if (payload.data?.keys && Array.isArray(payload.data.keys)) {
|
|
return payload.data.keys.map((issuer_id) => ({
|
|
issuer_id,
|
|
...payload.data.key_info[issuer_id],
|
|
}));
|
|
}
|
|
Object.assign(payload, payload.data);
|
|
delete payload.data;
|
|
}
|
|
return payload;
|
|
}
|
|
}
|