@page "/user-management" @attribute [Authorize] @inject IAuthService AuthService @inject ILocalizationService Loc @inject NavigationManager Navigation @Loc["usermanagement.title"] - Author Buddy

@Loc["usermanagement.title"]

@foreach (var u in users) { }
@Loc["usermanagement.col.name"] @Loc["usermanagement.col.role"] @Loc["usermanagement.col.status"] @Loc["usermanagement.col.actions"]
@u.Name @(u.Id == currentUserId ? "(Du)" : "") @(u.Role == UserRole.Administrator ? Loc["settings.user.role.admin"] : Loc["settings.user.role.author"]) @if (u.IsActive) { @Loc["usermanagement.status.active"] } else { @Loc["usermanagement.status.inactive"] } @if (u.Id != currentUserId) { @if (u.IsActive) { } else { } } else { @Loc["usermanagement.cannot_self"] }
@if (!string.IsNullOrEmpty(statusMessage)) {
@statusMessage
}
@code { private List users = new(); private int currentUserId; private string statusMessage = string.Empty; protected override async Task OnInitializedAsync() { await LoadUsers(); } private async Task LoadUsers() { users = await AuthService.GetAllUsersAsync(); currentUserId = AuthService.CurrentUser?.Id ?? 0; } private async Task ActivateUser(int userId) { var ok = await AuthService.SetUserActiveAsync(userId, true); statusMessage = ok ? Loc["usermanagement.status.activated"] : Loc["common.error"]; await LoadUsers(); } private async Task DeactivateUser(int userId) { var ok = await AuthService.SetUserActiveAsync(userId, false); statusMessage = ok ? Loc["usermanagement.status.deactivated"] : Loc["common.error"]; await LoadUsers(); } private async Task DeleteUser(int userId) { var ok = await AuthService.DeleteUserAsync(userId); statusMessage = ok ? Loc["usermanagement.status.deleted"] : Loc["common.error"]; await LoadUsers(); } }