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< accessApprovalRequestDAL: Pick<
TAccessApprovalRequestDALFactory, TAccessApprovalRequestDALFactory,
| "create" | "create"
| "find"
| "findRequestsWithPrivilegeByPolicyIds" | "findRequestsWithPrivilegeByPolicyIds"
| "findById" | "findById"
| "transaction" | "transaction"
@@ -117,14 +118,15 @@ export const accessApprovalRequestServiceFactory = ({
approvers.map((approver) => approver.approverId) approvers.map((approver) => approver.approverId)
); );
const duplicateRequest = await accessApprovalRequestDAL.findOne({ const duplicateRequests = await accessApprovalRequestDAL.find({
policyId: policy.id, policyId: policy.id,
requestedBy: membership.id, requestedBy: membership.id,
permissions: JSON.stringify(requestedPermissions), permissions: JSON.stringify(requestedPermissions),
isTemporary isTemporary
}); });
if (duplicateRequest) { if (duplicateRequests?.length > 0) {
for await (const duplicateRequest of duplicateRequests) {
if (duplicateRequest.privilegeId) { if (duplicateRequest.privilegeId) {
const privilege = await additionalPrivilegeDAL.findById(duplicateRequest.privilegeId); const privilege = await additionalPrivilegeDAL.findById(duplicateRequest.privilegeId);
@@ -145,6 +147,7 @@ export const accessApprovalRequestServiceFactory = ({
} }
} }
} }
}
const approval = await accessApprovalRequestDAL.transaction(async (tx) => { const approval = await accessApprovalRequestDAL.transaction(async (tx) => {
const approvalRequest = await accessApprovalRequestDAL.create( const approvalRequest = await accessApprovalRequestDAL.create(