diff --git a/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlacePermissionsService.cs index 13af5110..6b0cd8e2 100644 --- a/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlacePermissionsService.cs +++ b/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlacePermissionsService.cs @@ -55,11 +55,22 @@ public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService var role = _currentUser.GetUserClaim(ClaimTypes.Role); var isAdmin = role == "admin" || role == "tenant-admin"; - var codes = await _dbContext.Queryable() - .WhereIF(!isAdmin, x => x.ManagerUserId == userId) + var codes = new List(); + if (isAdmin) + { + codes = await _dbContext.Queryable() + .Select(x => x.Code) + .ToListAsync(); + } + else + { + codes = await _dbContext.Queryable() + .Where(x => x.ManagerUserId == userId) .Select(x => x.BusinessPlaceCode) .Distinct() .ToListAsync(); + } + return await _dbContext.Queryable() .Where(x => codes.Contains(x.Code))