PermissionService.GetPermissionStructureAsync fixed
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user