Skip to content

feat(users and groups): re-use add account dialog when editing accounts#59406

Merged
pringelmann merged 33 commits into
masterfrom
feat/40903/edit-user-dialog
Apr 30, 2026
Merged

feat(users and groups): re-use add account dialog when editing accounts#59406
pringelmann merged 33 commits into
masterfrom
feat/40903/edit-user-dialog

Conversation

@pringelmann
Copy link
Copy Markdown
Contributor

@pringelmann pringelmann commented Apr 2, 2026

Summary

Replaces inline user editing in Account management settings with a dialog. Clicking the "Edit" pencil icon on a user row now opens a modal form instead of making the row editable in-place.

Adds a new PATCH /cloud/users/{userId} endpoint that accepts multiple fields in a single request and validates them all before applying any changes. On validation failure, returns a per-field error map so the dialog can show errors inline.

Closes #40903

Changes

Backend (provisioning_api)

  • New editUserMultiField controller method - spec compliant PATCH semantics (null = not submitted),
    validate-then-apply, per-field errors
  • Authorization mirrors the existing editUser PUT: quota/manager restricted to admins and
    subadmins, delegated admins blocked from promoting to the admin group, force_language
    system config respected

Frontend (settings)

  • New EditUserDialog: structured snapshot + dirty detection,
    only sends changed fields
  • Shared UserFormFields used by both "Edit" and "Add" dialogs. Complex fields
    (groups, quota, language, manager) split into focused sub-components
  • provide/inject for shared form state across sub-components. This avoids prop drilling
    and vue/no-mutating-props lint violations
  • UserRow is now purely presentational (all inline editing code removed)

Screenshots

image
Kooha-2026-04-02-18-15-19.webm

Checklist

@pringelmann pringelmann self-assigned this Apr 2, 2026
@pringelmann pringelmann added this to the Nextcloud 34 milestone Apr 2, 2026
@pringelmann pringelmann linked an issue Apr 2, 2026 that may be closed by this pull request
@pringelmann pringelmann force-pushed the feat/40903/edit-user-dialog branch from 86a44d9 to e435b4c Compare April 2, 2026 16:18
@pringelmann pringelmann added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Apr 2, 2026
@pringelmann pringelmann marked this pull request as ready for review April 2, 2026 16:18
@pringelmann pringelmann requested review from a team as code owners April 2, 2026 16:18
@pringelmann pringelmann requested review from Altahrim, nfebe, salmart-dev, sorbaugh and szaimen and removed request for a team April 2, 2026 16:18
@pringelmann pringelmann changed the title Feat/40903/edit user dialog feat(users and groups): re-use add account dialog when editing accounts Apr 2, 2026
@susnux
Copy link
Copy Markdown
Contributor

susnux commented Apr 16, 2026

@pringelmann does this also fixes #46783 ?

@pringelmann
Copy link
Copy Markdown
Contributor Author

@pringelmann does this also fixes #46783 ?

@susnux not directly no, happy to work on that next though as a separate PR

@pringelmann pringelmann force-pushed the feat/40903/edit-user-dialog branch 2 times, most recently from c8df083 to 62580a4 Compare April 21, 2026 08:45
@pringelmann
Copy link
Copy Markdown
Contributor Author

/compile rebase /

@pringelmann pringelmann force-pushed the feat/40903/edit-user-dialog branch from 62580a4 to 4972d3d Compare April 21, 2026 09:50
@nextcloud-command nextcloud-command force-pushed the feat/40903/edit-user-dialog branch from 4972d3d to 353bf3e Compare April 21, 2026 11:21
@pringelmann pringelmann requested a review from come-nc April 21, 2026 12:09
pringelmann and others added 17 commits April 29, 2026 16:26
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
…tiField

-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
…tUserMultiField

-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
@pringelmann pringelmann force-pushed the feat/40903/edit-user-dialog branch from a027995 to 61b00b2 Compare April 29, 2026 14:29
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
…r-dialog

# Conflicts:
#	dist/files-main.js
#	dist/files-main.js.map
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
@pringelmann pringelmann merged commit 4d0cba8 into master Apr 30, 2026
218 of 232 checks passed
@pringelmann pringelmann deleted the feat/40903/edit-user-dialog branch April 30, 2026 15:54
This was referenced May 5, 2026
This was referenced May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

Re-use the new user modal to edit users (user management)

6 participants