feat(dashboard/profil): Ajoute la page de profil utilisateur

Ajoute la page de profil utilisateur avec formulaire de mot de passe, gestion 2FA, et déconnexion.
 feat(AuditLogRepository): Améliore requête logs avec sécurité et filtre

Améliore la requête des logs en appliquant les restrictions de sécurité et le filtrage optionnel par compte.
 feat(ProfilsController): Crée le contrôleur des profils utilisateurs

Crée le contrôleur des profils utilisateurs pour gérer la sécurité du compte (2FA et mot de passe).
🎨 feat(dashboard/audit_logs): Améliore l'interface des journaux d'audit

Améliore l'interface des journaux d'audit avec filtre par compte et design plus moderne.
```
This commit is contained in:
Serreau Jovann
2026-01-16 11:34:39 +01:00
parent 777375e5e8
commit 667da6af84
7 changed files with 504 additions and 165 deletions

View File

@@ -88,14 +88,29 @@
</div>
{# Profil utilisateur #}
<div class="flex items-center space-x-3 px-4 py-2 bg-slate-50 dark:bg-slate-900/50 rounded-2xl border border-slate-200 dark:border-slate-700 shrink-0">
<div class="w-8 h-8 rounded-full bg-blue-600 flex items-center justify-center text-white font-bold text-xs">
{{ app.user.firstName|first|upper }}
</div>
<div class="text-left hidden sm:block">
<p class="text-xs font-bold text-slate-800 dark:text-white leading-none mb-1">{{ app.user.firstName }}</p>
<a href="{{ path('app_logout') }}" class="text-[9px] text-red-500 font-bold uppercase tracking-tighter hover:text-red-600">Déconnexion</a>
</div>
<div class="flex items-center gap-2">
{# Zone Profil cliquable #}
<a href="{{ path('app_crm_profils') }}"
class="flex items-center space-x-3 px-4 py-2 bg-slate-50 dark:bg-slate-900/50 rounded-2xl border border-slate-200 dark:border-slate-700 shrink-0 hover:bg-slate-100 dark:hover:bg-slate-800 transition-all group">
<div class="w-8 h-8 rounded-full bg-blue-600 flex items-center justify-center text-white font-bold text-xs shadow-lg shadow-blue-500/20 group-hover:scale-105 transition-transform">
{{ app.user.firstName|first|upper }}
</div>
<div class="text-left hidden sm:block">
<p class="text-xs font-bold text-slate-800 dark:text-white leading-none mb-0.5">{{ app.user.firstName }}</p>
<span class="text-[8px] text-blue-500 font-bold uppercase tracking-widest opacity-70 group-hover:opacity-100 transition-opacity">Mon Compte</span>
</div>
</a>
{# Bouton Déconnexion séparé #}
<a href="{{ path('app_logout') }}"
title="Déconnexion"
class="w-10 h-10 flex items-center justify-center bg-red-500/10 hover:bg-red-500 text-red-500 hover:text-white border border-red-500/20 rounded-xl transition-all duration-300">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1" />
</svg>
</a>
</div>
</header>