Fix authentication state persistence and admin role display

- Implement complete authentication system with JWT token validation
- Add auth provider with persistent login state across page refreshes
- Create multilingual login/register forms with Material-UI components
- Fix token validation using raw SQL queries to bypass Prisma sync issues
- Add comprehensive error handling for expired/invalid tokens
- Create profile and settings pages with full i18n support
- Add proper user role management (admin/user) with database sync
- Implement secure middleware with CSRF protection and auth checks
- Add debug endpoints for troubleshooting authentication issues
- Fix Zustand store persistence for authentication state

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
andupetcu
2025-09-21 01:06:30 +03:00
parent 62ca73b2ac
commit 196ca00194
174 changed files with 181207 additions and 179 deletions

View File

@@ -195,6 +195,80 @@
}
}
},
"auth": {
"email": "Email",
"password": "Parolă",
"confirmPassword": "Confirmă parola",
"name": "Nume",
"optional": "(opțional)",
"login": "Autentificare",
"register": "Înregistrare",
"logout": "Deconectare",
"logging_in": "Se autentifică...",
"registering": "Se înregistrează...",
"loginError": "Eroare la autentificare",
"registerError": "Eroare la înregistrare",
"connectionError": "Eroare de conexiune",
"passwordMismatch": "Parolele nu se potrivesc",
"createAccount": "Creează cont",
"alreadyHaveAccount": "Ai deja cont?",
"noAccount": "Nu ai cont?",
"forgotPassword": "Ai uitat parola?",
"welcomeBack": "Bine ai revenit!",
"joinUs": "Alătură-te nouă!"
},
"profile": {
"title": "Profil",
"subtitle": "Gestionează informațiile contului tău",
"personalInfo": "Informații personale",
"accountDetails": "Detalii cont",
"name": "Nume",
"email": "Email",
"role": "Rol",
"memberSince": "Membru din",
"edit": "Editează",
"save": "Salvează modificările",
"saving": "Se salvează...",
"cancel": "Anulează",
"emailCannotChange": "Email-ul nu poate fi schimbat",
"profileUpdated": "Profilul a fost actualizat cu succes!",
"updateError": "Eroare la actualizarea profilului",
"user": "Utilizator",
"admin": "Administrator",
"moderator": "Moderator"
},
"settings": {
"title": "Setări",
"subtitle": "Personalizează experiența ta",
"appearance": "Aspect",
"languageAndNotifications": "Limba și notificări",
"security": "Securitate",
"theme": "Temă",
"fontSize": "Mărimea fontului",
"language": "Limba",
"notifications": "Activează notificările",
"emailUpdates": "Actualizări prin email",
"changePassword": "Schimbă parola",
"changePasswordSoon": "Schimbă parola (În curând)",
"passwordSecurity": "Setări parolă și securitate",
"saveSettings": "Salvează setările",
"settingsSaved": "Setările au fost salvate cu succes!",
"settingsError": "Eroare la salvarea setărilor",
"themes": {
"light": "Luminos",
"dark": "Întunecat",
"auto": "Automat"
},
"fontSizes": {
"small": "Mic",
"medium": "Mediu",
"large": "Mare"
},
"languages": {
"ro": "Română",
"en": "English"
}
},
"common": {
"loading": "Se încarcă...",
"error": "A apărut o eroare",