Fix: Duplicate access request check

This commit is contained in:
Daniel Hougaard
2024-05-07 17:30:35 +02:00
parent 0bbdf2a8f4
commit d659b5a624
@@ -37,6 +37,7 @@ type TSecretApprovalRequestServiceFactoryDep = {
accessApprovalRequestDAL: Pick<
TAccessApprovalRequestDALFactory,
| "create"
| "find"
| "findRequestsWithPrivilegeByPolicyIds"
| "findById"
| "transaction"
@@ -117,14 +118,15 @@ export const accessApprovalRequestServiceFactory = ({
approvers.map((approver) => approver.approverId)
);
const duplicateRequest = await accessApprovalRequestDAL.findOne({
const duplicateRequests = await accessApprovalRequestDAL.find({
policyId: policy.id,
requestedBy: membership.id,
permissions: JSON.stringify(requestedPermissions),
isTemporary
});
if (duplicateRequest) {
if (duplicateRequests?.length > 0) {
for await (const duplicateRequest of duplicateRequests) {
if (duplicateRequest.privilegeId) {
const privilege = await additionalPrivilegeDAL.findById(duplicateRequest.privilegeId);
@@ -145,6 +147,7 @@ export const accessApprovalRequestServiceFactory = ({
}
}
}
}
const approval = await accessApprovalRequestDAL.transaction(async (tx) => {
const approvalRequest = await accessApprovalRequestDAL.create(