Lieb-Website/Lieb/Pages/User/RoleEdit.razor
2022-03-21 01:12:35 +01:00

65 lines
1.6 KiB
Text

@page "/roleedit"
@using Lieb.Data
@using Lieb.Models
@using Lieb.Models.GuildWars2
@inject UserService UserService
<h3>Role Edit</h3>
<AuthorizeView Policy="@Constants.Roles.Admin.Name">
<Authorized>
<table>
@foreach(LiebRole role in _roles)
{
<tr>
<td>@role.RoleName</td>
<td>@if(role.Type == RoleType.UserDefinedRole)
{
<button type=button @onclick="() => DeleteRoleClicked(role)">Delete Role</button>
}</td>
</tr>
}
</table>
<p>
<label>
new Role:
<input @bind="_newRoleName" />
<button type=button @onclick="() => CreateRoleClicked()">Create Role</button>
</label>
</p>
</Authorized>
</AuthorizeView>
@code
{
private List<LiebRole> _roles;
private string _newRoleName = string.Empty;
protected override async Task OnInitializedAsync()
{
_roles = UserService.GetLiebRoles();
}
async Task CreateRoleClicked()
{
LiebRole role = new LiebRole()
{
RoleName = _newRoleName,
Type = RoleType.UserDefinedRole,
Level = 0,
LevelToAssign = Constants.Roles.RaidLead.PowerLevel
};
await UserService.AddRole(role);
_roles = UserService.GetLiebRoles();
}
async Task DeleteRoleClicked(LiebRole role)
{
await UserService.DeleteRole(role.LiebRoleId);
_roles = UserService.GetLiebRoles();
}
}