|
|
|
@ -1,6 +1,5 @@
|
|
|
|
|
using Blazorise.DataGrid;
|
|
|
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
|
using Microsoft.Extensions.Configuration.UserSecrets;
|
|
|
|
|
using Microsoft.Extensions.Localization;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using WF_WebAdmin.Model;
|
|
|
|
@ -8,21 +7,65 @@ using WF_WebAdmin.Service;
|
|
|
|
|
|
|
|
|
|
namespace WF_WebAdmin.Pages
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Page permettant de gérer les utilisateurs, y compris la suppression, la modification, et l'attribution du rôle admin.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class DeleteUser
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Indicateur pour afficher ou non la popup de confirmation de suppression.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool showDeletePopup = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Indicateur pour afficher ou non la popup de confirmation de modification d'utilisateur.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool showModifyPopup = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Liste des utilisateurs à afficher dans la page.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private List<User> users;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Utilisateur sélectionné pour la suppression.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private User userToDelete = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Utilisateur sélectionné pour la modification.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private User selectedUser;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Indicateur pour afficher ou non la popup de confirmation de suppression.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool showPopupDelete = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Indicateur pour afficher ou non la popup de confirmation de l'attribution du rôle admin.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool showPopupAdmin = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Utilisateur sélectionné pour devenir administrateur.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private User userToAdmin = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Nombre maximum d'utilisateurs à afficher par page.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private int MaxValue = 5;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Nombre total d'utilisateurs dans la base de données.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private int totalItem;
|
|
|
|
|
private int page = 1;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Numéro de la page actuelle dans le DataGrid.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private int page = 1;
|
|
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
|
public HttpClient Http { get; set; }
|
|
|
|
@ -30,19 +73,30 @@ namespace WF_WebAdmin.Pages
|
|
|
|
|
[Inject]
|
|
|
|
|
public NavigationManager NavigationManager { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Service permettant de gérer les utilisateurs (CRUD).
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Inject]
|
|
|
|
|
private IUserService userService { get; set; }
|
|
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Localisateur de chaîne pour gérer la localisation de la page.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Inject]
|
|
|
|
|
public IStringLocalizer<DeleteUser> Localizer { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Méthode appelée lors de l'initialisation de la page. Charge les utilisateurs à afficher.
|
|
|
|
|
/// </summary>
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
{
|
|
|
|
|
// Charge la première page des utilisateurs
|
|
|
|
|
users = await userService.getSomeUser(MaxValue, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Méthode appelée lors de la lecture des données dans le DataGrid. Gère la pagination et l'affichage des utilisateurs.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async Task OnReadData(DataGridReadDataEventArgs<User> e)
|
|
|
|
|
{
|
|
|
|
|
if (e.CancellationToken.IsCancellationRequested)
|
|
|
|
@ -50,48 +104,62 @@ namespace WF_WebAdmin.Pages
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Récupère les utilisateurs pour la page demandée
|
|
|
|
|
var response = await userService.getSomeUser(e.PageSize, e.Page);
|
|
|
|
|
|
|
|
|
|
if (!e.CancellationToken.IsCancellationRequested)
|
|
|
|
|
{
|
|
|
|
|
totalItem = await userService.getNbUser();
|
|
|
|
|
users = new List<User>(response.ToArray());
|
|
|
|
|
page = e.Page;
|
|
|
|
|
totalItem = await userService.getNbUser(); // Récupère le nombre total d'utilisateurs
|
|
|
|
|
users = new List<User>(response.ToArray()); // Met à jour la liste des utilisateurs
|
|
|
|
|
page = e.Page; // Met à jour le numéro de la page
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------- Popup remove user -------
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Affiche la popup de confirmation de suppression de l'utilisateur sélectionné.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void ShowConfirmation(User user)
|
|
|
|
|
{
|
|
|
|
|
userToDelete = user;
|
|
|
|
|
showPopupDelete = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Affiche la popup de modification de l'utilisateur sélectionné.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void ShowModifyConfirmation(User user)
|
|
|
|
|
{
|
|
|
|
|
// Afficher la modale et mémoriser l'utilisateur à supprimer
|
|
|
|
|
selectedUser = user;
|
|
|
|
|
showModifyPopup = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Supprime l'utilisateur sélectionné et met à jour la liste des utilisateurs affichés.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async Task RemoveUser()
|
|
|
|
|
{
|
|
|
|
|
if (userToDelete != null)
|
|
|
|
|
{
|
|
|
|
|
await userService.removeUser(userToDelete);
|
|
|
|
|
ClosePopup();
|
|
|
|
|
var response = await userService.getSomeUser(MaxValue, page);
|
|
|
|
|
users = new List<User>(response.ToArray());
|
|
|
|
|
await userService.removeUser(userToDelete); // Appelle le service pour supprimer l'utilisateur
|
|
|
|
|
ClosePopup(); // Ferme les popups
|
|
|
|
|
var response = await userService.getSomeUser(MaxValue, page); // Récupère à nouveau les utilisateurs
|
|
|
|
|
users = new List<User>(response.ToArray()); // Met à jour la liste des utilisateurs
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Met à jour l'utilisateur sélectionné.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async Task ModifyUser()
|
|
|
|
|
{
|
|
|
|
|
await userService.updateUser(selectedUser);
|
|
|
|
|
ClosePopup();
|
|
|
|
|
await userService.updateUser(selectedUser); // Appelle le service pour mettre à jour l'utilisateur
|
|
|
|
|
ClosePopup(); // Ferme les popups
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Ferme toutes les popups actuellement ouvertes.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void ClosePopup()
|
|
|
|
|
{
|
|
|
|
|
showDeletePopup = false;
|
|
|
|
@ -100,31 +168,33 @@ namespace WF_WebAdmin.Pages
|
|
|
|
|
showPopupAdmin = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ------- Popup admin -------
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Affiche la popup de confirmation pour attribuer ou révoquer le rôle d'administrateur.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void ShowConfirmationAdmin(User user)
|
|
|
|
|
{
|
|
|
|
|
userToAdmin = user;
|
|
|
|
|
showPopupAdmin = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Attribue ou révoque le rôle d'administrateur pour l'utilisateur sélectionné.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async Task setAdmin()
|
|
|
|
|
{
|
|
|
|
|
if (!userToAdmin.IsAdmin)
|
|
|
|
|
if (!userToAdmin.IsAdmin) // Si l'utilisateur n'est pas administrateur, on l'attribue comme admin
|
|
|
|
|
{
|
|
|
|
|
userToAdmin.IsAdmin = true;
|
|
|
|
|
await userService.updateUser(userToAdmin);
|
|
|
|
|
ClosePopup();
|
|
|
|
|
await userService.updateUser(userToAdmin); // Met à jour l'utilisateur
|
|
|
|
|
ClosePopup(); // Ferme les popups
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
else // Si l'utilisateur est déjà administrateur, on révoque ce rôle
|
|
|
|
|
{
|
|
|
|
|
userToAdmin.IsAdmin = false;
|
|
|
|
|
await userService.updateUser(userToAdmin);
|
|
|
|
|
ClosePopup();
|
|
|
|
|
await userService.updateUser(userToAdmin); // Met à jour l'utilisateur
|
|
|
|
|
ClosePopup(); // Ferme les popups
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|