PermissionService.GetPermissionStructureAsync fixed

This commit is contained in:
2026-04-11 19:09:08 +09:30
parent 611f695db6
commit 3eaba1b601
+13 -5
View File
@@ -50,21 +50,29 @@ public class PermissionService : IPermissionService
p.Action == action); p.Action == action);
} }
Task<List<PermissionStructureModel>> IPermissionService.GetPermissionStructureAsync(int moduleId) public async Task<List<PermissionStructureModel>> GetPermissionStructureAsync(int moduleId)
{ {
// First check cache // First check cache
var cacheKey = $"permission_structure_{moduleId}"; var cacheKey = $"permission_structure_{moduleId}";
if (!_cache.TryGetValue(cacheKey, out List<PermissionStructureModel> permissionStructure)) if (!_cache.TryGetValue(cacheKey, out List<PermissionStructureModel> 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, ModuleId = s.Id,
ModuleName = s.Name, ModuleName = s.Name,
Features = s.Features.Select(b => new FeaturePermissionModel Features = s.Features.Select(b => new FeaturePermissionModel
{ {
FeatureId = b.FeatureId, FeatureId = b.FeatureId,
FeatureName = s.Feature.Name 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); //_context.Features.Include(i => i.Modules).Include(i => i.Actions).Where(w => w.Modules. == moduleId);
} }