Resend-confirmation affordance for stored unconfirmed emails #173
Labels
No labels
kind
bug
kind
enhancement
wayfinder
grilling
wayfinder
map
wayfinder
prototype
wayfinder
research
wayfinder
task
workflow
needs-info
workflow
needs-triage
workflow
ready-for-agent
workflow
ready-for-human
workflow
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rosa/vernier#173
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?
Problem Statement
On an email-disabled instance (see #172), a User may set an email that is stored
unconfirmed and inert. When the operator later configures SMTP, that already-stored
email needs a way to become confirmed. #172 assumes this happens through the
ordinary user-initiated confirmation path — but if that path only dispatches a
confirmation when the email changes, a User whose address was stored earlier and
is unchanged has no way to trigger confirmation, leaving their address permanently
unconfirmed even though email now works.
Solution
Give the User an explicit "resend confirmation" affordance in account settings that
mints and dispatches a fresh email confirmation for the currently-stored, still
unconfirmed email — without requiring them to change the address to something else
and back.
Trigger / dependency
This is a contingent follow-up to #172. It only becomes real work if, during or
after #172, the ordinary email-set path is found NOT to reach an already-stored
(previously inert) email. #172's Further Notes carry an explicit check for this.
If the ordinary path already re-confirms an unchanged stored email, close this as
not needed.
User Stories
"resend confirmation" control in settings, so that I can confirm my unchanged
address once the operator enables email.
re-request confirmation without editing my address, so that a lost or expired
confirmation link is recoverable.
yet confirmed, so that it is absent when there is nothing to confirm.
inert), so that I am not offered an action that cannot currently send.
Implementation Decisions
accounts::Service::send_email_confirmationand the
email_confirmationjob/queue); this issue adds a trigger, not a newdelivery path.
hidden/disabled on an email-disabled instance.
email_confirmed_at.reuse existing throttling rather than inventing new limits.
Testing Decisions
crates/serverintegration harness (test_server), same as#172. On an email-enabled server, a User with a stored unconfirmed email hits
the resend affordance and a new
email_confirmationconfirmation is minted(assert via
email_confirmations_for,passkey_test.rs:134).test_server.confirmed email.
Out of Scope
resend trigger.
Further Notes
Blocked on / informed by #172. Do not start until #172's investigation confirms the
ordinary path does not already cover the unchanged-stored-email case.