[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>
This commit is contained in:
DevEnv nis2-agile
2026-03-09 11:23:40 +01:00
co-authored by Claude Sonnet 4.6
parent 6cf1cd7384
commit 0a194f6f12
3 changed files with 382 additions and 11 deletions
+6
View File
@@ -104,6 +104,7 @@ $controllerMap = [
'whistleblowing'=> 'WhistleblowingController',
'normative' => 'NormativeController',
'cross-analysis' => 'CrossAnalysisController',
'contact' => 'ContactController',
];
if (!isset($controllerMap[$controllerName])) {
@@ -369,6 +370,11 @@ $actionMap = [
'GET:history' => 'history',
'GET:portfolio' => 'portfolio',
],
// ── ContactController (lead / richiesta invito) ──
'contact' => [
'POST:requestInvite' => 'requestInvite',
],
];
// ═══════════════════════════════════════════════════════════════════════════