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"), new Permission(Permissions.System.Versions, "Versions", "Look at the available versions"), new Permission(Permissions.System.Instance, "Instance", "Update the moonlight instance and add plugins"), ]), new PermissionCategory("API Keys", typeof(KeyIcon), [ new Permission(Permissions.ApiKeys.Create, "Create", "Create new API keys"), new Permission(Permissions.ApiKeys.View, "View", "View all API keys"), new Permission(Permissions.ApiKeys.Edit, "Edit", "Edit API key details"), new Permission(Permissions.ApiKeys.Delete, "Delete", "Delete API keys"), ]), new PermissionCategory("Themes", typeof(PaintRollerIcon), [ new Permission(Permissions.Themes.Create, "Create", "Create new theme"), new Permission(Permissions.Themes.View, "View", "View all themes"), new Permission(Permissions.Themes.Edit, "Edit", "Edit themes"), new Permission(Permissions.Themes.Delete, "Delete", "Delete themes"), ]), ]); } }