Name the login and sign-in address at onboarding handoff (USER-WP-0035-T01).
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Has been cancelled
Build and Publish Container Image / build-and-push (push) Successful in 1m13s
Account journey acceptance / journeys (push) Successful in 10s

From the 2026-09-23 operator run: recipients try the email address, and the
admin user entry gave no sign-in address to pass on.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 58902@bnt-lap001
Assistant-Session: 7ac7f865-2dc5-4aa7-8eb7-27a342109c2f
This commit is contained in:
tegwick 2026-09-23 22:10:38 +02:00
parent ab7cd3fd8e
commit ed69e97b86
3 changed files with 74 additions and 1 deletions

View file

@ -2053,6 +2053,9 @@ Use the login name they provide; it may differ from your display name.</p></sect
hidden = "".join(f'<input type="hidden" name="{escape(k)}" value="{escape(v)}">' for k,v in fields.items())
return f'<form method="post" action="{root}/{action}"><input type="hidden" name="csrf_token" value="{escape(csrf_token)}">{hidden}<button type="submit">{label}</button></form>'
login = (f'<p>Login name: <strong>{escape(self._directory_login(directory.subject))}</strong></p>'
'<p>Pass this name on with the sign-in address. It is not the email address, '
'and signing in by email does not work.</p>'
f'<p>Sign-in page: <a href="{escape(self.login_url)}">{escape(self.login_url)}</a></p>'
'<p>Password and authenticator status are not available here.</p>') if directory else '<p>Login not created. Prepare a login before asking this person to sign in.</p>'
actions = ""
if not inactive:
@ -2244,11 +2247,13 @@ Use the login name they provide; it may differ from your display name.</p></sect
return self._page_html(
"Password setup",
"<h1>Login ready for password setup</h1>"
+ f"<p>Login name: <strong>{escape(self._directory_login(subject))}</strong>. Use this name when signing in; it may differ from the display name.</p>"
+ f"<p>Login name: <strong>{escape(self._directory_login(subject))}</strong>. Use this name when signing in; it may differ from the display name, and it is not the email address.</p>"
+ "<p>The password is handled only by the NetKingdom identity "
"surface. This short-lived link is single use.</p>"
f'<p><a class="button" rel="noreferrer" href="{escape(setup_url)}">'
"Continue to password setup</a></p>"
+ f'<p>After the password is set, sign in at <a href="{escape(self.login_url)}">{escape(self.login_url)}</a>. '
"This portal does not deliver the setup link; pass it and the login name on yourself.</p>"
f'<p><a href="/admin/{escape(tenant)}">'
"Return to tenant administration</a></p>",
)