Commit Graph

3 Commits

Author SHA1 Message Date
DevEnv nis2-agile
86cd5f760b [FIX] MktgLeadController + ContactController: getRequestBody → getJsonBody
Il metodo corretto in BaseController è getJsonBody(), non getRequestBody().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 12:19:21 +01:00
DevEnv nis2-agile
b909136d53 [FIX] MktgLeadController + ContactController: rimuovi parent::__construct()
BaseController non ha costruttore — la chiamata parent::__construct()
causava Fatal Error "Cannot call constructor" su ogni richiesta.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 12:18:14 +01:00
DevEnv nis2-agile
0a194f6f12 [FEAT] Landing NIS2: accesso su invito + form lead request
- index.html: CTA "Registrati" → "Richiedi accesso" (anchor form)
  Badge hero "Accesso su invito — Richiedi il tuo codice per iniziare"
  Sezione #richiedi-accesso con form lead (nome, email, azienda, ruolo,
  dimensioni, messaggio) + JS submit asincrono + stato successo/errore
  CTA finale aggiornato con messaggio codice invito
- ContactController.php: POST /api/contact/request-invite
  Validazione campi, rate limit 3/10min per IP, email a info@agile.software
  tramite EmailService con template HTML branded
- index.php: route contact → ContactController + action requestInvite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 11:23:40 +01:00