@page "/administration/groups" @rendermode InteractiveServer @layout AdminLayout @using static Microsoft.AspNetCore.Components.Web.RenderMode @using BlazorStrap @using Microsoft.AspNetCore.Components.Web @using HopFrame.Web.Components @using HopFrame.Web.Pages.Administration.Components @using BlazorStrap.V5 @using CurrieTechnologies.Razor.SweetAlert2 @using HopFrame.Database.Models @using HopFrame.Security.Claims @using HopFrame.Security.Services @using HopFrame.Web.Pages.Administration.Layout Groups

Groups administration

Add Group
Name Description Default Created @if (_hasEditPrivileges || _hasDeletePrivileges) { Actions } @foreach (var group in _groups) { @group.Name.Replace("group.", "") @group.Description @if (group.IsDefaultGroup) { Yes } else { No } @group.CreatedAt @if (_hasEditPrivileges || _hasDeletePrivileges) { @if (_hasEditPrivileges) { Edit } @if (_hasDeletePrivileges) { Delete } } } @inject IPermissionService Permissions @inject ITokenContext Auth @inject SweetAlertService Alerts @code { private IList _groups = new List(); private bool _hasEditPrivileges = false; private bool _hasDeletePrivileges = false; private GroupAddModal _groupAddModal; protected override async Task OnInitializedAsync() { _groups = await Permissions.GetPermissionGroups(); _hasEditPrivileges = await Permissions.HasPermission(AdminPermissions.EditGroup, Auth.User.Id); _hasDeletePrivileges = await Permissions.HasPermission(AdminPermissions.DeleteGroup, Auth.User.Id); } private async Task Reload() { _groups = new List(); _groups = await Permissions.GetPermissionGroups(); StateHasChanged(); } private async Task Delete(PermissionGroup group) { var result = await Alerts.FireAsync(new SweetAlertOptions { Title = "Are you sure?", Text = "You won't be able to revert this!", Icon = SweetAlertIcon.Warning, ConfirmButtonText = "Yes", ShowCancelButton = true, ShowConfirmButton = true }); if (result.IsConfirmed) { await Permissions.DeletePermissionGroup(group); await Reload(); await Alerts.FireAsync(new SweetAlertOptions { Title = "Deleted!", Icon = SweetAlertIcon.Success, Timer = 1500, ShowConfirmButton = false }); } } }