Platform & Access · Password reset request
Public form where a staff member asks for a password-reset email by entering their address.
| Area | Platform & Access |
| Routes | user.reset-password |
| Centre modules | always available |
| Staff levels | unauthenticated |
| Models | staff-member |
| UI label | change-password.titles |
| Coverage | 2 use cases · 1 happy · 2 failure |
How it works
Deliberately unauthenticated and paired with update_password/:token. The route itself is a thin shell (9 lines); the work is in the reset-password component.
Use cases
Why someone opens this (2)
- Staff member forgot their password and needs a reset link.
- An admin tells a user to self-service a reset instead of re-issuing credentials.
Path map
flowchart LR F(["Password reset request"]):::feat F --> H1["Reset email requested"]:::ok F -.-> X1["Unknown email"]:::bad F -.-> X2["Mail delivery fails"]:::bad classDef feat fill:#4a5c8a,stroke:#4a5c8a,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Reset email requested
- User opens /user/reset-password and submits their email.
- API queues a reset email containing a tokenised link.
- A confirmation message is shown; the user leaves the app and opens the email.
Failure paths
Unknown email
Cause — Address does not belong to a staff member.
What happens — Handled by the API response; the form reports the error. Note the flow does not distinguish ‘unknown address’ from ‘sent’ in the UI copy, which is the usual anti-enumeration behaviour.
Mail delivery fails
Cause — Email provider error downstream.
What happens — No frontend feedback loop exists — the user simply never receives the link and must retry.
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Reset email requested
- ⛔ Unknown email
- ⛔ Mail delivery fails
Implementation
Translation keys (1)
Key English change-password.titlesChange password
Related
- Same area — Staff login · Password update from reset link · Change own password · Idle auto-logout · Centre switching & multi-centre scoping · Server-incident banner · Desktop (home dashboard) · Runtime environment & white-label boot · Back-office interface language · In-app help & support chat (Froged)
- Shares data with — Intranet communications (threads, confirmations, authorisations) · Staff member list, deletion & restore · Staff member editor (levels, scope, API token) · Role & module permission layer · Customer action log (dormant)
Generated from doc/feature-inventory.json · id platform-reset-password · commit 276788ca6