Commit graph

6 commits

Author SHA1 Message Date
Imugiii
49ab77b3a3 feat(admin): CRUD produits avec PIN conditionnel et audit
Some checks failed
CI / php-lint (push) Successful in 25s
CI / secret-scan (pull_request) Successful in 9s
CI / secret-scan (push) Successful in 13s
CI / static-tests (push) Successful in 36s
CI / php-lint (pull_request) Successful in 19s
CI / static-tests (pull_request) Successful in 41s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Failing after 5s
CRUD produits server-rendered sous /admin/products (index/create/edit/delete).
- ProductRepository sur DatabaseInterface : all/find/create/update/delete +
  categoryExists, allowlist mass-assignment (RG-T16).
- ProductController : validation serveur bornee (RG-T18) — categorie existante,
  nom <=120, prix > 0 et <= UINT32, TVA dans {55,100}, image <=255,
  display_order 0..65535.
- PIN equipier (RG-T13) exige UNIQUEMENT si price_cents ou vat_rate change a
  l'update, et systematiquement a la suppression ; sinon write simple sans PIN.
- audit_log (RG-T14) ecrit dans la meme transaction (RG-T08) que la mutation,
  acteur resolu via PinVerifier::resolveActingUser (email + PIN, is_active = 1).
- Suppression FK-safe : hard delete seulement si non referencee, sinon
  PDOException 23000 -> 422.
- Mitigation brute-force PIN : chaque echec ecrit un audit_log pin.failed
  (detectable). Le throttle PIN degressif complet est un chunk dedie a venir.

Tests : 172 verts (452 assertions), PHPStan L6 clean.
2026-06-15 20:31:51 +00:00
f63ac9873c feat: PIN self-service P3 (/admin/profile/pin) (#16)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 35s
CI / auto-merge (push) Has been skipped
2026-06-15 22:04:14 +02:00
8290ceabc4 feat: CRUD categories P3 (rendu serveur, garde + CSRF + validation) (#15)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 27s
CI / auto-merge (push) Has been skipped
2026-06-15 21:45:31 +02:00
7c35f8e2dc feat: PIN d action sensible P2 (PinVerifier RG-T13) (#13)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 16s
CI / static-tests (push) Successful in 30s
CI / auto-merge (push) Has been skipped
2026-06-15 21:00:11 +02:00
f979a2339e feat: RBAC P2 (autorisation par permission + garde de session + /api/me) (#12)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 33s
CI / auto-merge (push) Has been skipped
2026-06-15 20:45:19 +02:00
1b0b20c12d feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 17s
CI / static-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-15 20:18:59 +02:00