[Bug] Admin : droits création gestionnaire + administrateur (403) #161

Closed
opened 2026-09-10 20:26:27 +00:00 by jmartin · 2 comments
Owner

Bug

Connecté en administrateur, création de comptes staff via le dashboard → 403 Forbidden resource.

Attendu (décision PO)

Action Qui peut
Créer un gestionnaire super_admin et administrateur
Créer un administrateur super_admin et administrateur

Constat technique

Endpoint Rôles actuels Problème
POST /api/v1/gestionnaires SUPER_ADMIN seul Admin → 403 (recette 2026-09-10)
POST /api/v1/users/admin SUPER_ADMIN seul (+ check service) Admin → 403

Fichiers :

  • backend/src/routes/user/gestionnaires/gestionnaires.controller.ts
  • backend/src/routes/user/user.controller.ts (createAdmin)
  • backend/src/routes/user/user.service.ts (createAdmin — Forbidden si pas super_admin)

Le front affiche déjà les formulaires pour l’admin → mismatch UI / API.

Correctif

  • Back : ajouter ADMINISTRATEUR sur POST /gestionnaires (et PATCH si édition admin pertinente)
  • Back : ajouter ADMINISTRATEUR sur POST /users/admin + assouplir le check dans createAdmin
  • Front : masquer / bloquer pour gestionnaire si encore visible ; admin OK
  • Tests : admin crée gestionnaire OK ; admin crée admin OK ; gestionnaire 403 ; super_admin OK

Lié

  • #134 (cadrage) — option B retenue ; périmètre élargi ici
  • Recette : création gestionnaire en session admin → 403

Milestone

0.1.0

## Bug Connecté en **administrateur**, création de comptes staff via le dashboard → **403 Forbidden resource**. ## Attendu (décision PO) | Action | Qui peut | |--------|----------| | Créer un **gestionnaire** | `super_admin` **et** `administrateur` | | Créer un **administrateur** | `super_admin` **et** `administrateur` | ## Constat technique | Endpoint | Rôles actuels | Problème | |----------|---------------|----------| | `POST /api/v1/gestionnaires` | `SUPER_ADMIN` seul | Admin → 403 (recette 2026-09-10) | | `POST /api/v1/users/admin` | `SUPER_ADMIN` seul (+ check service) | Admin → 403 | Fichiers : - `backend/src/routes/user/gestionnaires/gestionnaires.controller.ts` - `backend/src/routes/user/user.controller.ts` (`createAdmin`) - `backend/src/routes/user/user.service.ts` (`createAdmin` — Forbidden si pas super_admin) Le front affiche déjà les formulaires pour l’admin → mismatch UI / API. ## Correctif - [ ] Back : ajouter `ADMINISTRATEUR` sur `POST /gestionnaires` (et `PATCH` si édition admin pertinente) - [ ] Back : ajouter `ADMINISTRATEUR` sur `POST /users/admin` + assouplir le check dans `createAdmin` - [ ] Front : masquer / bloquer pour **gestionnaire** si encore visible ; admin OK - [ ] Tests : admin crée gestionnaire OK ; admin crée admin OK ; gestionnaire 403 ; super_admin OK ## Lié - #134 (cadrage) — option B retenue ; périmètre élargi ici - Recette : création gestionnaire en session admin → 403 ## Milestone **0.1.0**
jmartin added this to the 0.1.0 milestone 2026-09-10 20:26:27 +00:00
jmartin added the bugfrontendbackendgestionnaireadminphase-1v0.1.0 labels 2026-09-10 20:26:27 +00:00
jmartin changed title from [Bug] Admin ne peut pas créer un gestionnaire (403) — ouvrir POST aux administrateurs to [Bug] Admin : droits création gestionnaire + administrateur (403) 2026-09-10 20:28:57 +00:00
Author
Owner

Livré sur feature/161-admin-creation-staff (9cd180bf)

Branche depuis develop.

Back

  • POST /gestionnaires + PATCH /gestionnaires/:idSUPER_ADMIN et ADMINISTRATEUR
  • POST /users/admin + check createAdmin → idem
  • GET /gestionnaires/:id → admin ajouté aussi

Front (garde-fou)

  • Dashboard gestionnaire : allowStaffAccountCreation: false → pas de bouton « Ajouter » sur Gestionnaires

Tests

  • Roles metadata + createAdmin (admin OK / super_admin OK / gestionnaire 403)
## Livré sur `feature/161-admin-creation-staff` (`9cd180bf`) Branche depuis **develop**. ### Back - `POST /gestionnaires` + `PATCH /gestionnaires/:id` → `SUPER_ADMIN` **et** `ADMINISTRATEUR` - `POST /users/admin` + check `createAdmin` → idem - `GET /gestionnaires/:id` → admin ajouté aussi ### Front (garde-fou) - Dashboard gestionnaire : `allowStaffAccountCreation: false` → pas de bouton « Ajouter » sur Gestionnaires ### Tests - Roles metadata + `createAdmin` (admin OK / super_admin OK / gestionnaire 403)
Author
Owner

Recette OK.

  • Mergé dans develop (c8cb82dd)
  • Squash master (eb5e4aa9)
  • Déployé sur app.ptits-pas.fr
✅ Recette OK. - Mergé dans `develop` (`c8cb82dd`) - Squash `master` (`eb5e4aa9`) - Déployé sur app.ptits-pas.fr
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jmartin/petitspas#161