@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
});
}
}
}