From 6295faad6431f0151ccc6d2df7b7d69a31352aeb Mon Sep 17 00:00:00 2001 From: Steve Cliff Date: Tue, 5 May 2026 10:43:11 +0100 Subject: [PATCH] ui(users): banner explaining the disabled-username re-enable flow --- internal/server/http/ui_users.go | 6 ++++++ web/templates/pages/user_edit.html | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/internal/server/http/ui_users.go b/internal/server/http/ui_users.go index 8f5e780..08ee401 100644 --- a/internal/server/http/ui_users.go +++ b/internal/server/http/ui_users.go @@ -153,6 +153,11 @@ type userFormPage struct { SetupURL string SetupExpAt time.Time Error string + // Reenable is set when the admin landed here because they tried + // to add a username that already exists (disabled). Triggers a + // banner on the edit page explaining why and steering them at + // the Re-enable button. See handleUIUserNewPost's collision branch. + Reenable bool } func (s *Server) handleUIUserNewGet(w stdhttp.ResponseWriter, r *stdhttp.Request) { @@ -290,6 +295,7 @@ func (s *Server) handleUIUserEditGet(w stdhttp.ResponseWriter, r *stdhttp.Reques Mode: "edit", ID: target.ID, Username: target.Username, Email: em, Role: string(target.Role), Disabled: target.DisabledAt != nil, + Reenable: r.URL.Query().Get("reenable") == "1", } _ = s.deps.UI.Render(w, "user_edit", view) } diff --git a/web/templates/pages/user_edit.html b/web/templates/pages/user_edit.html index a479f7b..4014fad 100644 --- a/web/templates/pages/user_edit.html +++ b/web/templates/pages/user_edit.html @@ -16,6 +16,28 @@ {{else}}Edit {{$page.Username}}{{end}} + {{/* Re-enable banner — fires when the admin tried to add a user + whose name already exists in a disabled state. We were + redirected here from /settings/users/new with ?reenable=1. */}} + {{if and $page.Reenable $page.Disabled}} +
+
Username already exists (disabled)
+

+ A user with this name was created previously and then disabled. + Re-enable them to restore access (their existing role + email + are kept), or pick a different name. +

+
+
+ +
+ Pick a different username +
+
+ {{end}} + {{if eq $page.Mode "setup-link"}} {{if eq $page.Error "expired"}}