Configuration SMTP et 2FA par code PIN e-mail
Paramètres du site : - Nouvelle section "Serveur SMTP" avec host, port, chiffrement, identifiant, mot de passe, adresse/nom d'expéditeur - Bouton "Envoyer un e-mail de test" (AJAX via Symfony EsmtpTransport) : tente la connexion + envoie un message réel à l'admin - Badge "Configuré — 2FA actif" quand SMTP est en place - Suppression de la configuration possible Authentification 2FA : - Si SMTP configuré : après validation identifiant/mot de passe, l'utilisateur est déconnecté, un PIN à 6 chiffres est généré, haché (bcrypt) et stocké en session, envoyé par e-mail (10 min) - Page /2fa : saisie du PIN, bouton "Renvoyer le code", retour login - Si l'envoi e-mail échoue : fallback sans 2FA (logue l'erreur) - Si SMTP non configuré : login standard inchangé Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,11 +13,26 @@ class AppServiceProvider extends ServiceProvider
|
||||
public function boot(): void
|
||||
{
|
||||
// Partage les paramètres globaux du site avec toutes les vues
|
||||
View::share('siteLogoUrl', SiteSettingsService::logoUrl());
|
||||
View::share('registrationEnabled', SiteSettingsService::registrationEnabled());
|
||||
View::share('siteName', SiteSettingsService::siteName());
|
||||
View::share('siteLogoUrl', SiteSettingsService::logoUrl());
|
||||
View::share('registrationEnabled', SiteSettingsService::registrationEnabled());
|
||||
View::share('siteName', SiteSettingsService::siteName());
|
||||
|
||||
// Remplace config('app.name') par le titre du site défini dans les paramètres
|
||||
// Remplace config('app.name') par le titre défini dans les paramètres
|
||||
config(['app.name' => SiteSettingsService::siteName()]);
|
||||
|
||||
// Applique la configuration SMTP si elle est définie dans les paramètres
|
||||
if (SiteSettingsService::smtpConfigured()) {
|
||||
$smtp = SiteSettingsService::smtpConfig();
|
||||
config([
|
||||
'mail.default' => 'smtp',
|
||||
'mail.mailers.smtp.host' => $smtp['host'],
|
||||
'mail.mailers.smtp.port' => (int) ($smtp['port'] ?? 587),
|
||||
'mail.mailers.smtp.encryption' => $smtp['encryption'] ?: null,
|
||||
'mail.mailers.smtp.username' => $smtp['username'] ?? null,
|
||||
'mail.mailers.smtp.password' => $smtp['password'] ?? null,
|
||||
'mail.from.address' => $smtp['from_address'] ?? null,
|
||||
'mail.from.name' => $smtp['from_name'] ?? SiteSettingsService::siteName(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user