feat(16-04): rebuild GroupFormModal to three states without AD binding
- Remove AD radio-selection block, discovery effect/state, and the
two-step create-then-PATCH-bind flow from GroupFormModal.tsx (D-07):
a local group can no longer be bound to an AD group from this dialog.
- Add locked name field with provenance hint + AD-DN read-only line and
an editable internalName field for imported groups (D-03/D-04); create
state gets a hint linking to the LDAP import area.
- Visible save-error line (never a silent catch{}) that distinguishes a
409 name collision from a generic failure; dialog stays open, inputs
are preserved.
- Add Group.internalName to the page.tsx interface now (Rule 3 — the
modal cannot typecheck without it; Task 2 adds the display-cell usage).
- Add seven new admin.groups i18n keys to de.json/en.json (orphaned
ldapBind.* keys removed in Task 3).
This commit is contained in:
@@ -402,7 +402,14 @@
|
||||
"actions": "Aktionen",
|
||||
"membersButton": "Mitglieder",
|
||||
"saveError": "Gruppe konnte nicht gespeichert werden. Bitte erneut versuchen.",
|
||||
"saveErrorNameTaken": "Der Name ist bereits vergeben.",
|
||||
"deleteError": "Gruppe konnte nicht gelöscht werden. Bitte erneut versuchen.",
|
||||
"nameLockedHint": "Von der AD-Gruppe übernommen. Wird beim nächsten Sync automatisch aktualisiert.",
|
||||
"adDnLabel": "AD-DN: {ldapDn}",
|
||||
"internalName": "Interner Name",
|
||||
"internalNameHint": "Wird von der Synchronisation nie verändert. Bleibt das Feld leer, zeigt die Oberfläche stattdessen den AD-Namen.",
|
||||
"createLdapHint": "AD-Gruppen werden im LDAP-Bereich importiert, nicht hier angelegt.",
|
||||
"goToLdap": "Zum LDAP-Bereich",
|
||||
"ldapBind": {
|
||||
"hint": "Wähle eine AD-Gruppe aus der Liste, um die Mitgliedschaft automatisch zu synchronisieren.",
|
||||
"bound": "Gebunden an: {ldapDn}",
|
||||
|
||||
Reference in New Issue
Block a user