Skip to content

pages: Add rate-limit reset ticket button to the wizard (3/3 split of #1371) - #1375

Merged
jm1021 merged 4 commits into
Open-Coding-Society:mainfrom
CSA-Admin-OCS:split/pages/p3-reset-ticket-button
Sep 21, 2026
Merged

jm1021 merged 4 commits into
Open-Coding-Society:mainfrom
CSA-Admin-OCS:split/pages/p3-reset-ticket-button

Conversation

@RudraBJoshi

Copy link
Copy Markdown
Contributor

Splitting #1371 into smaller, independently-reviewable PRs across spring/flask/pages. This one covers ticketing for password reset attempts.

Depends on #1374 (merge that first) — this branch includes #1374's support-page commit since GitHub can't base a PR on a branch that only exists in this fork. Once #1374 merges, this diff will shrink to just this PR's own changes.

Adds a "Request a Ticket Instead" button to the OAuth reset wizard, shown when the reset rate limit is hit (429); it posts to Spring's /mvc/person/reset/ticket endpoint so an admin can grant more attempts.

Original PR: #1371

Adds a "Request a Ticket Instead" button to the OAuth password-reset
wizard, shown when the reset rate limit is hit (429); it posts to
Spring's /mvc/person/reset/ticket endpoint so an admin can grant more
attempts from the person/read portal. Doesn't require the OAuth step to
have succeeded, since the whole point is to cover the case where the
user can't get through it right now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
RudraBJoshi and others added 3 commits August 31, 2026 10:42
Companion to a spring-side fix that force-expires a uid's MVC sessions
after /reset/oauth/complete succeeds: that invalidates the account's
sessions server-side, but doesn't clear any cookies the browser
completing the reset happens to be holding. Call Spring's /logout
(best-effort) right before redirecting to /login so this browser's
cookies get cleared too.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- showResetOAuthStatus(): build the status message via createElement/
  textContent instead of innerHTML string interpolation.
- startOAuthReset(): show an inline error if the Google GSI script
  hasn't loaded, and clear the sign-in container before rendering so
  re-entering the step doesn't stack a second button.
- submitOAuthResetPassword(): route password/mismatch errors through
  the existing inline validation message instead of alert().
- .support-topic-item <li>: add role="button" tabindex="0" plus a
  delegated keydown listener, so it's keyboard-activatable.
- resetUid/resetNewPassword/resetConfirmPassword: add matching
  aria-labels (previously placeholder-only accessible names).
- Move the inline <style> block and inline style="..." attributes into
  the same SCSS partial used on pwd-reset-support/p2-support-page
  (elements/forms/support.scss).
- login.md's signup Google client id now reads from one shared
  _config.yml value via Liquid instead of being hardcoded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Resolves the one real conflict: main has no "Request a Ticket Instead"
button block at all (p1/p2 never added it), so keeping this branch's
version is a pure addition, not a competing change. Everything else
auto-merged cleanly, including the Flask-first reset flow from p2
(now on main) coexisting with this PR's ticket-request button.

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

jm1021 commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

This is waiting for a Java PR to be resolved

@jm1021
jm1021 merged commit 3888a73 into Open-Coding-Society:main Sep 21, 2026
2 checks passed
@jm1021

jm1021 commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

It has been a while but we should start to review reset process

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants