users: turn the four modals into a per-user page at #users/{id}
Nightly Build / build (push) Successful in 6m58s

The connectors-assignment dialog was the fourth modal on the Users page
and the first to break: a checkbox list taller than the viewport with no
scroll. Same failure the connector activation and manual-add dialogs had,
same fix — a page. The list stays a table, but rows are clickable and
open the user's own page with three sections:

- Profile: the old edit form (username, display name, role, directory
  fields, active switch) with a saved tick;
- Connectors: the grant checklist as the Connectors page's row list
  (icon, name, description, search, global/personal groups), one Save;
- Security: password reset (disabled with an explanation for encrypted
  users) and the delete action.

Only user creation stays a modal — three fields and a role fit.
This commit is contained in:
2026-07-27 21:40:17 +01:00
parent 776748435b
commit fadb31832f
6 changed files with 618 additions and 345 deletions
+8 -6
View File
@@ -1041,12 +1041,16 @@ export default {
'users.badge.active': 'Actif',
'users.badge.inactive': 'Inactif',
'users.action.reset_pw': 'Réinitialiser le mot de passe',
'users.action.edit': 'Modifier',
'users.action.connectors': 'Connecteurs',
'users.action.delete': 'Supprimer',
'users.modal.connectors_title': 'Connecteurs — {username}',
'users.detail.back': 'Utilisateurs',
'users.detail.profile': 'Profil',
'users.detail.connectors': 'Connecteurs',
'users.detail.security': 'Sécurité',
'users.detail.saved': 'Enregistré',
'users.detail.delete_hint': 'Supprime cet utilisateur, sa base de données et tout l\'historique des conversations.',
'users.detail.no_such': 'Utilisateur introuvable.',
'users.conn.globals': 'Connecteurs partagés',
'users.conn.catalog': 'Connecteurs personnels',
'users.conn.hint_global': 'Disponible pour cet utilisateur dès que vous l\'activez.',
@@ -1055,8 +1059,6 @@ export default {
'users.conn.disabled': 'désactivé',
'users.modal.create_title': 'Nouvel utilisateur',
'users.modal.edit_title': 'Modifier {username}',
'users.modal.reset_title': 'Réinitialiser le mot de passe — {username}',
'users.modal.username': 'Nom d\'utilisateur',
'users.modal.display_name': 'Nom d\'affichage',
'users.modal.optional': '(facultatif)',