From 207a44acd70baabe6558db1dfb38904a42eb48d5 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 30 Sep 2025 21:32:59 +0530 Subject: [PATCH] Checking if have directory admin permission in delete contact API --- Marco.Pms.Services/Service/DirectoryService.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Marco.Pms.Services/Service/DirectoryService.cs b/Marco.Pms.Services/Service/DirectoryService.cs index ee0a66d..e5ad8a9 100644 --- a/Marco.Pms.Services/Service/DirectoryService.cs +++ b/Marco.Pms.Services/Service/DirectoryService.cs @@ -1533,9 +1533,11 @@ namespace Marco.Pms.Services.Service return ApiResponse.ErrorResponse("Contact ID is empty", "Contact ID is empty", 400); } + var (hasAdminPermission, hasManagerPermission, hasUserPermission) = await CheckPermissionsAsync(loggedInEmployee.Id); + var bucketIds = await _context.ContactBucketMappings.Where(cb => cb.ContactId == id).Select(cb => cb.BucketId).ToListAsync(); var hasContactAccess = await _context.EmployeeBucketMappings.AnyAsync(eb => bucketIds.Contains(eb.BucketId) && eb.EmployeeId == loggedInEmployee.Id); - if (hasContactAccess) + if (!hasAdminPermission && !hasContactAccess) { _logger.LogWarning("Employee {EmployeeId} does not have permission to delete contact {ContactId}", loggedInEmployee.Id, id);