feat: add LDAP authentication settings and toggle
Add an admin-only LDAP configuration UI with an enable toggle and full sign-in integration. Backend: - ldapSettings model + migration (single-row config) - GET/PUT/test routes under /ldap (admin-gated; bind password masked) - shared ldapClient with RFC 4515 filter escaping and empty-password guard - signin tries local auth first, then LDAP when enabled (find-or-create local user) so the bootstrap admin is never locked out Frontend: - LDAP settings page (Switch + form + test connection) under /admin/ldap - AdminNav tabs between user management and LDAP - ldapControl util, types, and Ldap i18n namespace for all 6 locales Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -149,6 +149,7 @@
|
||||
},
|
||||
"Admin": {
|
||||
"user_management": "Benutzerverwaltung",
|
||||
"ldap": "LDAP",
|
||||
"avatar": "Avatar",
|
||||
"id": "ID",
|
||||
"email": "E-Mail",
|
||||
@@ -434,5 +435,27 @@
|
||||
"tag_error_create": "Tag konnte nicht erstellt werden. Bitte versuche es erneut.",
|
||||
"tag_error_update": "Tag konnte nicht aktualisiert werden. Bitte versuche es erneut.",
|
||||
"tag_error_delete": "Tag konnte nicht gelöscht werden. Bitte versuche es erneut."
|
||||
},
|
||||
"Ldap": {
|
||||
"ldap_settings": "LDAP-Einstellungen",
|
||||
"ldap_description": "Benutzer über ein LDAP-Verzeichnis authentifizieren.",
|
||||
"enable_ldap": "LDAP aktivieren",
|
||||
"enable_ldap_desc": "Benutzern erlauben, sich mit ihren Verzeichnis-Anmeldedaten anzumelden.",
|
||||
"server_url": "Server-URL",
|
||||
"bind_dn": "Bind-DN",
|
||||
"bind_credentials": "Bind-Passwort",
|
||||
"bind_credentials_placeholder": "Leer lassen, um das aktuelle Passwort beizubehalten",
|
||||
"search_base": "Suchbasis",
|
||||
"search_filter": "Suchfilter",
|
||||
"email_attribute": "E-Mail-Attribut",
|
||||
"username_attribute": "Benutzername-Attribut",
|
||||
"save": "Speichern",
|
||||
"saved": "LDAP-Einstellungen gespeichert",
|
||||
"save_error": "LDAP-Einstellungen konnten nicht gespeichert werden",
|
||||
"test_connection": "Verbindung testen",
|
||||
"test_username": "Test-Benutzername",
|
||||
"test_password": "Test-Passwort",
|
||||
"test_success": "Verbindung erfolgreich",
|
||||
"test_failed": "Verbindung fehlgeschlagen"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user