26 lines
837 B
C#
26 lines
837 B
C#
using mws.backend.dotnet.application.Permissions;
|
|
using mws.backend.dotnet.domain.Roles;
|
|
|
|
namespace mws.backend.dotnet.application.Permissions;
|
|
|
|
internal static class RolePermissionBuilder
|
|
{
|
|
public static List<RolePermission> Build(List<PermissionEntryDto> entries)
|
|
{
|
|
var byScreen = entries.Where(e => ScreenCatalog.Keys.Contains(e.Screen)).ToDictionary(e => e.Screen);
|
|
|
|
return ScreenCatalog.Keys.Select(key =>
|
|
{
|
|
byScreen.TryGetValue(key, out var entry);
|
|
return new RolePermission
|
|
{
|
|
Screen = key,
|
|
CanView = entry?.CanView ?? false,
|
|
CanCreate = entry?.CanCreate ?? false,
|
|
CanEdit = entry?.CanEdit ?? false,
|
|
CanDelete = entry?.CanDelete ?? false,
|
|
};
|
|
}).ToList();
|
|
}
|
|
}
|