When someone registers from a personal invite link, the email field should be populated with the invited address and not editable.
Current behaviour
templates/frontend/register-page.php does render a readonly, prefilled email whenever an invite row matches the token — but it keys off $invite !== null, not off the invite actually being redeemable. With open registration enabled, an expired / accepted / revoked invite token still shows its stale email readonly, while the submit handler takes the open-registration branch and reads $_POST['email'] — which the readonly field never submits (it has no name), so the form dead-ends with "Please enter a valid email address."
Wanted
Valid pending invite → email prefilled from the invite and locked (server side keeps using the invite's email as the source of truth, ignoring any client-tampered value).
Invite that is no longer acceptable + open registration on → normal editable email field.
Test coverage for the locked-email rendering and both fallback paths.
**From the 2026-07-22 user demo.**
When someone registers from a **personal** invite link, the email field should be populated with the invited address and not editable.
## Current behaviour
`templates/frontend/register-page.php` does render a readonly, prefilled email whenever an invite row matches the token — but it keys off `$invite !== null`, not off the invite actually being redeemable. With open registration enabled, an **expired / accepted / revoked** invite token still shows its stale email readonly, while the submit handler takes the open-registration branch and reads `$_POST['email']` — which the readonly field never submits (it has no `name`), so the form dead-ends with "Please enter a valid email address."
## Wanted
- Valid pending invite → email prefilled from the invite and locked (server side keeps using the invite's email as the source of truth, ignoring any client-tampered value).
- Invite that is no longer acceptable + open registration on → normal editable email field.
- Test coverage for the locked-email rendering and both fallback paths.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From the 2026-07-22 user demo.
When someone registers from a personal invite link, the email field should be populated with the invited address and not editable.
Current behaviour
templates/frontend/register-page.phpdoes render a readonly, prefilled email whenever an invite row matches the token — but it keys off$invite !== null, not off the invite actually being redeemable. With open registration enabled, an expired / accepted / revoked invite token still shows its stale email readonly, while the submit handler takes the open-registration branch and reads$_POST['email']— which the readonly field never submits (it has noname), so the form dead-ends with "Please enter a valid email address."Wanted