feat: added collection selection for cert template

This commit is contained in:
Sheen Capadngan
2024-08-16 19:40:23 +08:00
parent 69925721cc
commit 97f5c33aea
11 changed files with 116 additions and 59 deletions
@@ -1033,6 +1033,7 @@ export const certificateAuthorityServiceFactory = ({
}: TIssueCertFromCaDTO) => {
let ca: TCertificateAuthorities | undefined;
let certificateTemplate: TCertificateTemplates | undefined;
let collectionId = pkiCollectionId;
if (caId) {
ca = await certificateAuthorityDAL.findById(caId);
@@ -1044,6 +1045,7 @@ export const certificateAuthorityServiceFactory = ({
});
}
collectionId = certificateTemplate.pkiCollectionId as string;
ca = await certificateAuthorityDAL.findById(certificateTemplate.caId);
}
@@ -1070,8 +1072,8 @@ export const certificateAuthorityServiceFactory = ({
}
// check PKI collection
if (pkiCollectionId) {
const pkiCollection = await pkiCollectionDAL.findById(pkiCollectionId);
if (collectionId) {
const pkiCollection = await pkiCollectionDAL.findById(collectionId);
if (!pkiCollection) throw new NotFoundError({ message: "PKI collection not found" });
if (pkiCollection.projectId !== ca.projectId) throw new BadRequestError({ message: "Invalid PKI collection" });
}
@@ -1237,10 +1239,10 @@ export const certificateAuthorityServiceFactory = ({
tx
);
if (pkiCollectionId) {
if (collectionId) {
await pkiCollectionItemDAL.create(
{
pkiCollectionId,
pkiCollectionId: collectionId,
certId: cert.id
},
tx
@@ -1290,6 +1292,7 @@ export const certificateAuthorityServiceFactory = ({
}: TSignCertFromCaDTO) => {
let ca: TCertificateAuthorities | undefined;
let certificateTemplate: TCertificateTemplates | undefined;
let collectionId = pkiCollectionId;
if (caId) {
ca = await certificateAuthorityDAL.findById(caId);
@@ -1301,6 +1304,7 @@ export const certificateAuthorityServiceFactory = ({
});
}
collectionId = certificateTemplate.pkiCollectionId as string;
ca = await certificateAuthorityDAL.findById(certificateTemplate.caId);
}
@@ -1490,10 +1494,10 @@ export const certificateAuthorityServiceFactory = ({
tx
);
if (pkiCollectionId) {
if (collectionId) {
await pkiCollectionItemDAL.create(
{
pkiCollectionId,
pkiCollectionId: collectionId,
certId: cert.id
},
tx
@@ -28,6 +28,7 @@ export const certificateTemplateServiceFactory = ({
}: TCertificateTemplateServiceFactoryDep) => {
const createCertTemplate = async ({
caId,
pkiCollectionId,
name,
commonName,
subjectAlternativeName,
@@ -58,6 +59,7 @@ export const certificateTemplateServiceFactory = ({
const certificateTemplate = await certificateTemplateDAL.create({
caId,
pkiCollectionId,
name,
commonName,
subjectAlternativeName,
@@ -70,6 +72,7 @@ export const certificateTemplateServiceFactory = ({
const updateCertTemplate = async ({
id,
caId,
pkiCollectionId,
name,
commonName,
subjectAlternativeName,
@@ -110,6 +113,7 @@ export const certificateTemplateServiceFactory = ({
const updatedCertTemplate = await certificateTemplateDAL.updateById(certTemplate.id, {
caId,
pkiCollectionId,
commonName,
subjectAlternativeName,
name,
@@ -2,6 +2,7 @@ import { TProjectPermission } from "@app/lib/types";
export type TCreateCertTemplateDTO = {
caId: string;
pkiCollectionId?: string;
name: string;
commonName: string;
subjectAlternativeName: string;
@@ -11,6 +12,7 @@ export type TCreateCertTemplateDTO = {
export type TUpdateCertTemplateDTO = {
id: string;
caId?: string;
pkiCollectionId?: string;
name?: string;
commonName?: string;
subjectAlternativeName?: string;