feat(T01): auth + user management + RBAC + base frontend + i18n
- Backend: FastAPI, JWT auth (HS256), bcrypt, RBAC middleware - User CRUD (admin-only), soft-delete, pagination - Pydantic BaseSettings config, async SQLAlchemy 2.0 - 50 backend tests, 88% coverage - Frontend: Next.js 14 App Router, Tailwind, design tokens - Login page, auth context, API client with auto-refresh - i18n: next-intl, DE/EN (31 keys each) - 6 base UI components (Button, Input, Card, Table, Modal, Toast) - 12 frontend tests, npm build success
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"auth.loginTitle": "Sign In",
|
||||
"auth.email": "Email Address",
|
||||
"auth.password": "Password",
|
||||
"auth.loginButton": "Sign In",
|
||||
"auth.logout": "Sign Out",
|
||||
"auth.loginSuccess": "Successfully signed in",
|
||||
"auth.error.loginFailed": "Login failed. Please check your credentials.",
|
||||
"auth.error.emailRequired": "Email address is required",
|
||||
"auth.error.emailInvalid": "Please enter a valid email address",
|
||||
"auth.error.passwordRequired": "Password is required",
|
||||
"auth.welcome": "Welcome back",
|
||||
"common.save": "Save",
|
||||
"common.cancel": "Cancel",
|
||||
"common.delete": "Delete",
|
||||
"common.edit": "Edit",
|
||||
"common.confirm": "Confirm",
|
||||
"common.search": "Search",
|
||||
"common.loading": "Loading...",
|
||||
"common.noData": "No data available",
|
||||
"nav.vehicles": "Vehicles",
|
||||
"nav.contacts": "Contacts",
|
||||
"nav.sales": "Sales",
|
||||
"nav.settings": "Settings",
|
||||
"nav.dashboard": "Dashboard",
|
||||
"nav.ocr": "OCR Scan",
|
||||
"nav.copilot": "AI Assistant",
|
||||
"user.role.admin": "Administrator",
|
||||
"user.role.verkaeufer": "Sales",
|
||||
"user.role.buchhaltung": "Accounting",
|
||||
"user.active": "Active",
|
||||
"user.inactive": "Inactive"
|
||||
}
|
||||
Reference in New Issue
Block a user