Skip to content

Add user management UI for admin and regular users (#106)#8937

Open
lstein wants to merge 2 commits intoinvoke-ai:mainfrom
lstein:lstein/multiuser-management-ui
Open

Add user management UI for admin and regular users (#106)#8937
lstein wants to merge 2 commits intoinvoke-ai:mainfrom
lstein:lstein/multiuser-management-ui

Conversation

@lstein
Copy link
Collaborator

@lstein lstein commented Mar 2, 2026

Summary

This PR adds a user interface for user management. Users with administrative privileges can add, delete and modify users. Non-admin users can change their display name and password.

What an administrator sees

When a user is logged in as an administrator, clicking on the "Person" icon on the left-hand icon bar brings up this menu:

image

Select User Management to bring up the user management interface:

image

From this screen, the administrator can:

  1. Add a new user
  2. Edit a current user's display name and password, or grant/revoke administrator status
  3. Temporarily disable a user's access status
  4. Delete the user account entirely

Adding a new user

To add a new user, the administrator selects Create User, which brings up this dialogue box:

image

The administrator can ask the system to generate a strong password, or choose one arbitrarily. An eye icon shows or hides the password. Selecting the Administrator checkbox will grant the user the ability to administer other users, add models, and do other system-wide configuration tasks.

Modifying a user

Clicking on one of the Pencil icons will bring up a dialogue that allows the administrator to change that user's display name and/or change their password. It can also be used to grant/deny administrator access. The dialogue is identical to the new user interface, except that the user's login ID (typically their email address) cannot be changed.

Deleting a user

The trash can icon deletes a user. The system presents a confirmation dialogue before executing the change:

image

What a non-administrative user sees

When a non-administrative user clicks on the person icon, they have the option of selecting "My Profile" to manage their password and display name.

image

The My Profile page is pretty basic. It has a field for changing the user's display name (seen by other users) and password. To change their password they must provide the current one. The new password can be typed in manualy, or automatically generated.

image

API additions

This PR adds the following new backend endpoints:

  • api/v1/auth/me -- get/update currently logged-in user's info (GET/PATCH)
  • api/v1/auth/generate-password -- generate a strong password
  • api/v1/auth/users -- List users (GET)
  • api/v1/auth/users -- Create a new user (POST)
  • api/v1/auth/users/{user_id} -- get/update/delete a user (GET/PATCH/POST)

The first endpoint requires an authentication token matching the ID of the user whose information is being requested. The last three endpoints require a token that grants administrative privileges.

Related Issues / Discussions

There are a few more planned short-term improvements to the multiuser feature. They are:

  1. Create separate startup (splash) screens for administrative and non-administrative users. For example, non-administrative users should not be prompted to add new models, since this feature is disabled.
  2. Isolate workflows so that each user has their own collection.
  3. Disable system-wide settings for non-administrative users (debug level, NSFW image blurring, ...)

QA Instructions

Log in as an administrative user and confirm that you can:

  1. create a new user
  2. modify the user's name and password
  3. temporarily inactivate the user
  4. delete the user

Log in as a non-administrative user and confirm that you can:

  1. change your display name
  2. change your password

Merge Plan

Checklist

  • The PR has a short but descriptive title, suitable for a changelog
  • Tests added / updated (if applicable)
  • ❗Changes to a redux slice have a corresponding migration
  • Documentation added / updated (if applicable)
  • Updated What's New copy (if doing a release after this PR)

Copilot AI and others added 2 commits March 1, 2026 23:42
* Add user management UI and backend API endpoints

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

Fix user management feedback: cancel/back navigation, system user filter, tooltip fix

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

Make Back button on User Management page more prominent

Co-authored-by: lstein <111189+lstein@users.noreply.github.com>

* chore(frontend): typegen

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lstein <111189+lstein@users.noreply.github.com>
@github-actions github-actions bot added api python PRs that change python files services PRs that change app services frontend PRs that change frontend files labels Mar 2, 2026
@lstein lstein added the v6.12.0 Intended for 6.12.0 release label Mar 2, 2026
@lstein lstein assigned dunkeroni and unassigned JPPhoto Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api frontend PRs that change frontend files python PRs that change python files services PRs that change app services v6.12.0 Intended for 6.12.0 release

Projects

Status: 6.12.x

Development

Successfully merging this pull request may close these issues.

4 participants