From d64ca0c7773065d6c3cc206604c1372f7bdc529c Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 20 Apr 2026 19:40:23 +0200 Subject: [PATCH] fix(admin): reload created user before returning in admin create handler The admin create-user handler returned the in-memory newUser struct directly. On mail-enabled instances with skip_email_confirm=false, user.CreateUser persists the account as email-confirmation-required, but the returned struct still reflects the pre-persist status, so the admin API reported a misleading active status immediately after creation. --- pkg/routes/api/v1/admin/user_create.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/routes/api/v1/admin/user_create.go b/pkg/routes/api/v1/admin/user_create.go index 5cd809cc6..5ba455579 100644 --- a/pkg/routes/api/v1/admin/user_create.go +++ b/pkg/routes/api/v1/admin/user_create.go @@ -103,6 +103,15 @@ func CreateUser(c *echo.Context) error { return err } + // Reload the user so the returned status reflects what was actually persisted + // (e.g. StatusEmailConfirmationRequired on mail-enabled instances). + rs := db.NewSession() + defer rs.Close() + newUser, err = user.GetUserByID(rs, newUser.ID) + if err != nil { + return err + } + providers, err := openid.GetAllProviders() if err != nil { return err