From 3eaba1b6010a1be5c873d35af555da67fbf2567d Mon Sep 17 00:00:00 2001 From: Chris McInnes Date: Sat, 11 Apr 2026 19:09:08 +0930 Subject: [PATCH] PermissionService.GetPermissionStructureAsync fixed --- FJPSite/Services/PermissionService.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/FJPSite/Services/PermissionService.cs b/FJPSite/Services/PermissionService.cs index 2cd88cf..aa2796a 100644 --- a/FJPSite/Services/PermissionService.cs +++ b/FJPSite/Services/PermissionService.cs @@ -50,21 +50,29 @@ public class PermissionService : IPermissionService p.Action == action); } - Task> IPermissionService.GetPermissionStructureAsync(int moduleId) + public async Task> GetPermissionStructureAsync(int moduleId) { // First check cache var cacheKey = $"permission_structure_{moduleId}"; if (!_cache.TryGetValue(cacheKey, out List permissionStructure)) { - permissionStructure = _context.Modules.Include(i => i.Features).ThenInclude(i => i.Feature).ThenInclude(i=> i.Actions).ThenInclude(i => i.Action).Where(w => w.Id == moduleId && w.IsActive == true).Select(s => new PermissionStructureModel { + permissionStructure = _context.Modules.Include(i => i.Features).ThenInclude(i => i.Feature).ThenInclude(i => i.Actions).ThenInclude(i => i.Action).Where(w => w.Id == moduleId && w.IsActive == true).Select(s => new PermissionStructureModel + { ModuleId = s.Id, ModuleName = s.Name, Features = s.Features.Select(b => new FeaturePermissionModel { - FeatureId = b.FeatureId, - FeatureName = s.Feature.Name - }) - }); + FeatureId = b.FeatureId, + FeatureName = b.Feature.Name, + Actions = b.Feature.Actions.Select(c => new ActionPermissionModel + { + ActionId = c.Id, + ActionName = c.Action.Name, + IsDisabled = false, + IsSelected = false + }).ToList() + }).ToList() + }).ToList(); //_context.Features.Include(i => i.Modules).Include(i => i.Actions).Where(w => w.Modules. == moduleId); }