using LucideBlazor; using Moonlight.Frontend.Interfaces; using Moonlight.Frontend.Models; using Moonlight.Shared; namespace Moonlight.Frontend.Implementations; public sealed class PermissionProvider : IPermissionProvider { public Task GetPermissionsAsync() { return Task.FromResult([ new PermissionCategory("Users", typeof(UserRoundIcon), [ new Permission(Permissions.Users.Create, "Create", "Create new users"), new Permission(Permissions.Users.View, "View", "View all users"), new Permission(Permissions.Users.Edit, "Edit", "Edit user details"), new Permission(Permissions.Users.Delete, "Delete", "Delete user accounts"), new Permission(Permissions.Users.Logout, "Logout", "Logout user accounts"), ]), new PermissionCategory("Roles", typeof(UsersRoundIcon), [ new Permission(Permissions.Roles.Create, "Create", "Create new roles"), new Permission(Permissions.Roles.View, "View", "View all roles"), new Permission(Permissions.Roles.Edit, "Edit", "Edit role details"), new Permission(Permissions.Roles.Delete, "Delete", "Delete role accounts"), new Permission(Permissions.Roles.Members, "Members", "Manage role members"), ]), new PermissionCategory("System", typeof(CogIcon), [ new Permission(Permissions.System.Info, "Info", "View system info"), new Permission(Permissions.System.Diagnose, "Diagnose", "Run diagnostics"), ]), ]); } }