[Mineur] Invitations inutilisables acceptées et invitations consommées toujours listées #121

Closed
opened 2026-10-28 10:32:13 +00:00 by asventi · 0 comments
Owner

Gravité : Mineur
Rapports QA d'origine : AUTH-07, AUTH-08

POST /auth/invitation accepte usages 0, date passée ou absente.

Détails des rapports

[AUTH-07] `POST /api/auth/invitation` accepte des invitations inutilisables (usages 0, date passée, date absente) — Gravité : Mineur
  • Où : POST /api/auth/invitation (avec InviteUser)
  • Étapes : 1. {"expireAt": <il y a 2h>, "usages": 5} -> 200 + code ; {"expireAt":..., "usages": 0} -> 200 ; {"usages":1} sans expireAt -> 200 (ExpireAt = 0001-01-01, [Required] inopérant sur un DateTime) ; expireAt: "0001-01-01T00:00:00Z" -> 200.
  • Attendu : 400 (date future obligatoire, usages >= 1 ou -1).
  • Obtenu : codes renvoyés mais inutilisables (register -> 406 et l'invitation est supprimée à ce moment-là). Seul l'UI protège (min=1, min date).
  • Cause probable : CreateInvitationEndpoint.cs:11-16.
[AUTH-08] Une invitation consommée reste listée avec 0 usage jusqu'à expiration — Gravité : Cosmétique
  • Où : GET /api/auth/invitation / page /admin/users
  • Obtenu : après l'inscription avec un code à 1 usage, l'invitation apparaît avec usages: 0 jusqu'à ce qu'un nouvel essai d'inscription la supprime (RegisterUserCommand.cs:22-27) ou qu'elle expire (CleanUp horaire).

Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.

**Gravité :** Mineur **Rapports QA d'origine :** AUTH-07, AUTH-08 `POST /auth/invitation` accepte usages 0, date passée ou absente. ## Détails des rapports <details><summary>[AUTH-07] `POST /api/auth/invitation` accepte des invitations inutilisables (usages 0, date passée, date absente) — Gravité : Mineur</summary> - Où : `POST /api/auth/invitation` (avec InviteUser) - Étapes : 1. `{"expireAt": <il y a 2h>, "usages": 5}` -> 200 + code ; `{"expireAt":..., "usages": 0}` -> 200 ; `{"usages":1}` sans `expireAt` -> 200 (ExpireAt = 0001-01-01, `[Required]` inopérant sur un DateTime) ; `expireAt: "0001-01-01T00:00:00Z"` -> 200. - Attendu : 400 (date future obligatoire, usages >= 1 ou -1). - Obtenu : codes renvoyés mais inutilisables (register -> 406 et l'invitation est supprimée à ce moment-là). Seul l'UI protège (min=1, min date). - Cause probable : `CreateInvitationEndpoint.cs:11-16`. </details> <details><summary>[AUTH-08] Une invitation consommée reste listée avec 0 usage jusqu'à expiration — Gravité : Cosmétique</summary> - Où : `GET /api/auth/invitation` / page /admin/users - Obtenu : après l'inscription avec un code à 1 usage, l'invitation apparaît avec `usages: 0` jusqu'à ce qu'un nouvel essai d'inscription la supprime (`RegisterUserCommand.cs:22-27`) ou qu'elle expire (CleanUp horaire). </details> --- _Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes._
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
Transcendence/backend#121
No description provided.