PermissionService.GetPermissionStructureAsync fixed

This commit is contained in:
2026-04-11 19:09:08 +09:30
parent 611f695db6
commit 3eaba1b601
+14 -6
View File
@@ -50,21 +50,29 @@ public class PermissionService : IPermissionService
p.Action == action);
}
Task<List<PermissionStructureModel>> IPermissionService.GetPermissionStructureAsync(int moduleId)
public async Task<List<PermissionStructureModel>> GetPermissionStructureAsync(int moduleId)
{
// First check cache
var cacheKey = $"permission_structure_{moduleId}";
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,
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);
}