Display a readable profile name for OIDC users instead of the internal identity key #3
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
After OIDC sign-in, the visible account identifier is an opaque oidc: hash. Users and administrators need a recognizable name.
Acceptance criteria:
Starting owner-requested work on #1 and #3 after reading #14, both issue descriptions/all comments, and the merged #2 authentication handoff. Scope for #3: bounded readable names from verified OIDC profile claims, refreshed on sign-in with a clear fallback, displayed for account/admin views while preserving issuer+subject identity, verified-email rules and ordinary-user defaults. Regression coverage will include duplicate/changed/missing names and distinct issuers. Work is isolated from current main; no deployment or active-task interruption is planned.
Implementation decision: store display_name separately from the unchanged internal username and issuer+subject identity. Use verified ID-token name, then preferred_username, then SSO user; normalize whitespace/control characters and limit names to 128 Unicode characters. Refresh on successful provider sign-in without changing roles or verified-email rules. The session header, administrator list/manage view and audit labels show readable names; stable account IDs distinguish duplicates. Signed-token and initial browser/backend checks passed for changed/duplicate/malformed/missing names and separate issuers. Final race/integration checks are in progress; no deployment has occurred.
Implementation/local validation complete in commit
2ff357ea691e88047bede8943b47cedffdb7899b, branchcodex/issues-1-3-sso-profile, published with #1 as draft PR #22.OIDC display_name is separate from the unchanged internal username and issuer+subject key. Verified ID-token name takes precedence over preferred_username, with SSO user as the fallback. Text is normalized/bounded to 128 Unicode characters and rendered as text. Names refresh at successful provider sign-in; legacy accounts use the fallback until then. Session header, administrator list/manage view and audit labels display readable names. Stable account IDs distinguish duplicate names and remain the targets for administrator actions. Display/email/role claims cannot merge accounts or grant administrator access; verified-email processing and ordinary-user defaults remain intact.
Signed-token regressions cover duplicate and changed names, absent/blank/malformed claims, Unicode bounds, HTML/control text, different issuers with the same subject, matching local usernames/emails and unchanged privileges/email-verification rules. API/browser regressions verify safe serialization/rendering, legacy/local fallbacks, readable session/admin views and independent management of duplicate-name accounts. OIDC guide and administration/testing/deployment guidance describe refresh, fallback, identity boundaries and remaining provider checks.
Checks actually run and passed:
State: implemented, committed, locally tested and published for review; not merged, release-image-published or deployed. Forgejo run 19 for this commit is waiting. Native AMD64/ARM64 release gates and actual-provider/deployed checks remain outstanding; no gate waiver is claimed. No pilot service or active upload/task was restarted or interrupted; no real library, provider or email delivery was used. Held #12/PR #19 and its checkout remain unchanged.
Next handoff: review draft PR #22 against main, complete required native validation, then coordinate an idle installation and run the documented provider/desktop/mobile checks. This issue remains open for review and merge.
Merged at the owner's explicit request after their review: PR #22, main merge
09085fa7b7bdaf46be48b34cd8ac3068f315320e, preserving feature commit2ff357ea691e88047bede8943b47cedffdb7899b.Merge verification: no conflicts; current main was the original base. The merged Git tree
a01dfdd638f7a61996d8b401c9115852418daa79exactly matches the previously validated feature source. Feature ancestry, clean worktree and diff checks passed. No implementation edits or repeated application suites were needed for this unchanged source. The prior handoff records passing backend/vet/race, all four focused browser suites, full disposable application/settings/restart walkthrough, UI lint/build/audit, nine CI policy tests, documentation contracts and secret scans.Closing this completed development issue at the owner's explicit request. Readable verified OIDC profile names now appear in session/admin views, with bounded plain-text rendering and a clear fallback. Issuer+subject identity, ordinary-user defaults and verified-email rules are preserved; administrator actions use stable IDs. Acceptance regressions include changed/duplicate/absent/malformed names, different issuers, local-account separation and escaping. Legacy names refresh at the next provider sign-in.
Source is merged, not deployed or release-image-published. Native Forgejo AMD64/ARM64 checks and the aggregate release gate remain outstanding; run 20 is waiting. Closing this issue does not waive release or installation checks. Next: complete native validation, coordinate an idle installation, and verify the actual provider plus desktop/mobile behavior using the installation checklist and OIDC guide. No pilot service or active upload/task was restarted or interrupted. Held #12/PR #19 remain untouched.