FEAT: UI Admin — confirmer l'email d'un utilisateur #89

Open
opened 2026-08-12 10:30:07 +02:00 by nonobis · 1 comment
Owner

Contexte

Des utilisateurs créés par l'admin restent « ⏳ En attente » (email non confirmé) sans aucun moyen de les valider depuis l'UI. Le seul chemin de confirmation est le lien heimdall://confirm-email envoyé par email (self-service).

État actuel

  • ConfirmEmailCommand existe mais exige un token (flux self-service, AuthController.confirm-email).
  • Aucun endpoint admin du type POST /api/users/{id}/confirm-email.
  • UsersPage.razor : EmailConfirmed est affiché (lignes 180-186) mais aucune action possible.

À faire

  1. Ajouter un endpoint admin POST /api/users/{id}/confirm-email (policy Admin.Users) → UserManager.SetEmailConfirmedAsync(user, true) + audit User.EmailConfirmed.
  2. Dans le dialog d'édition (UsersPage.razor), section « Statut du compte » : bouton « Confirmer l'email » visible uniquement si !EmailConfirmed (confirmation dans le dialog), ou bouton « Marquer non confirmé » si déjà confirmé.
  3. Afficher une Snackbar de succès et rafraîchir.

Critères d'acceptation

  • Un admin peut confirmer l'email d'un utilisateur en 2 clics.
  • L'action est journalisée en audit avec l'admin déclencheur.

Fichiers concernés

  • src/Heimdall.Web/Controllers/UsersController.cs
  • src/Heimdall.Application/Users/Commands/ (nouveau command ConfirmEmailAdmin)
  • src/Heimdall.Web/Components/Pages/UsersPage.razor
  • src/Heimdall.Web/Services/HeimdallApiClient.cs


Maquette

Maquette

Description

Dans le dialog « Modifier un utilisateur », section « Statut du compte » : affiche l'état de confirmation de l'email (badge Confirmé / Non confirmé). Si email non confirmé → bo


Maquette

Maquette

## Contexte Des utilisateurs créés par l'admin restent « ⏳ En attente » (email non confirmé) sans aucun moyen de les valider depuis l'UI. Le seul chemin de confirmation est le lien `heimdall://confirm-email` envoyé par email (self-service). ## État actuel - `ConfirmEmailCommand` existe mais exige un **token** (flux self-service, `AuthController.confirm-email`). - Aucun endpoint admin du type `POST /api/users/{id}/confirm-email`. - `UsersPage.razor` : `EmailConfirmed` est affiché (lignes 180-186) mais aucune action possible. ## À faire 1. Ajouter un endpoint admin `POST /api/users/{id}/confirm-email` (policy `Admin.Users`) → `UserManager.SetEmailConfirmedAsync(user, true)` + audit `User.EmailConfirmed`. 2. Dans le dialog d'édition (`UsersPage.razor`), section « Statut du compte » : bouton **« Confirmer l'email »** visible uniquement si `!EmailConfirmed` (confirmation dans le dialog), ou bouton « Marquer non confirmé » si déjà confirmé. 3. Afficher une Snackbar de succès et rafraîchir. ## Critères d'acceptation - Un admin peut confirmer l'email d'un utilisateur en 2 clics. - L'action est journalisée en audit avec l'admin déclencheur. ## Fichiers concernés - `src/Heimdall.Web/Controllers/UsersController.cs` - `src/Heimdall.Application/Users/Commands/` (nouveau command ConfirmEmailAdmin) - `src/Heimdall.Web/Components/Pages/UsersPage.razor` - `src/Heimdall.Web/Services/HeimdallApiClient.cs` --- --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page admin](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea073ccc) ![Maquette](https://forgejo.tordais.cc/attachments/f6511bd8-6ba6-46d8-a8c8-a7055953a363) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/335fc944-75c0-4ad3-b15b-3cbf5d6e82bd) - Statut : maquette appliquée dans Penpot ✓ ## Description Dans le dialog « Modifier un utilisateur », section « Statut du compte » : affiche l'état de confirmation de l'email (badge Confirmé / Non confirmé). Si email non confirmé → bo --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page admin](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea073ccc) ![Maquette](https://forgejo.tordais.cc/attachments/f6511bd8-6ba6-46d8-a8c8-a7055953a363) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/335fc944-75c0-4ad3-b15b-3cbf5d6e82bd) - Statut : maquette appliquée dans Penpot ✓
Author
Owner

Maquette the-designer intégrée (14/08/2026) :

Maquette the-designer intégrée (14/08/2026) : - Aperçu (PNG) : https://forgejo.tordais.cc/attachments/f6511bd8-6ba6-46d8-a8c8-a7055953a363 - Détails / composants MudBlazor (README) : https://forgejo.tordais.cc/attachments/335fc944-75c0-4ad3-b15b-3cbf5d6e82bd - Statut : application Penpot différée (plugin MCP non connecté) — maquette locale consultable
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#89
No description provided.