mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-10 19:28:51 +00:00
Fix: Duplicate access request check
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user