corentin_wakdo/tests/Unit/Auth
Imugiii 693e4a03bf
All checks were successful
CI / secret-scan (pull_request) Successful in 15s
CI / php-lint (pull_request) Successful in 28s
CI / static-tests (pull_request) Successful in 1m6s
CI / js-tests (pull_request) Successful in 40s
CI / secret-scan (push) Successful in 14s
CI / php-lint (push) Successful in 33s
CI / static-tests (push) Successful in 1m11s
CI / js-tests (push) Successful in 38s
feat(auth): envoi reel de l'email de reset via relais SMTP (Brevo)
Client SMTP maison (zero lib, contrainte from-scratch) : ESMTP + STARTTLS +
AUTH LOGIN, conduit par SmtpClient contre un SmtpTransport injectable (seam de
test). SmtpMailer assemble un message text/plain UTF-8 (dot-stuffing, en-tetes
RFC2047) et implemente l'interface Mailer existante. PasswordResetController
choisit SmtpMailer si SMTP_HOST+USER+PASSWORD presents, sinon garde LogMailer
(dev sans infra mail inchange).

STARTTLS exige avant AUTH (pas d'auth en clair). Garde anti-injection CRLF sur
les adresses (SmtpClient) + filter_var du destinataire (SmtpMailer). readReply
borne (anti-boucle sur reponse malformee). Secrets uniquement en .env (hote) :
placeholders dans .env.example / .env.prod.example, rien de versionne.

Revue compliance : verdict block initial (injection CRLF + readReply non borne),
2 must_fix corriges + tests de regression. 8 tests SMTP, 429 total, PHPStan L6.
2026-06-23 13:31:47 +00:00
..
AuthControllerTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
AuthorizerTest.php feat: RBAC P2 (autorisation par permission + garde de session + /api/me) (#12) 2026-06-15 20:45:19 +02:00
AuthServiceTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
CsrfTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
MeControllerTest.php feat: RBAC P2 (autorisation par permission + garde de session + /api/me) (#12) 2026-06-15 20:45:19 +02:00
PasswordHasherTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
PasswordResetControllerTest.php fix(auth): leurre anti-enumeration sur la demande de reset (#26) 2026-06-16 14:20:59 +02:00
PasswordResetServiceTest.php fix(auth): leurre anti-enumeration sur la demande de reset (#26) 2026-06-16 14:20:59 +02:00
PinThrottleTest.php feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18) 2026-06-16 00:06:33 +02:00
PinVerifierTest.php feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18) 2026-06-16 00:06:33 +02:00
SessionGuardTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
SmtpClientTest.php feat(auth): envoi reel de l'email de reset via relais SMTP (Brevo) 2026-06-23 13:31:47 +00:00
SmtpMailerTest.php feat(auth): envoi reel de l'email de reset via relais SMTP (Brevo) 2026-06-23 13:31:47 +00:00
ThrottlePolicyTest.php feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18) 2026-06-16 00:06:33 +02:00
UserDirectoryTest.php feat(admin): modal de re-autorisation PIN (#52) 2026-06-18 13:17:59 +02:00