f4eed5cb31
* make cross-sign component * remove type from obj-list-input * finish skeleton of component * handle change on init * finish cross-sign form * add cancel transition * update pki/issuer adapter to accept backend passed from adapterOptions * first draft of cross-signing issuers component * refactor to accommodate listing signed certs * changes to config adapter and model, likely will need to revert and manually add to pki/action * add args to infotooltip, move header to cross-sign route * use pki/action model * move header to route file * finish displaying signed certificates * finish styling * add issuer id to cross-sign breadcrumbs * add parsed cert data to requests * add status count * add error banner back
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
import { parseCertificate } from 'vault/utils/parse-pki-cert';
|
|
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',
|
|
'commonName',
|
|
'issuerId',
|
|
'keyId',
|
|
'notValidAfter',
|
|
'notValidBefore',
|
|
'serialNumber',
|
|
'signatureBits',
|
|
];
|
|
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;
|
|
}
|
|
}
|