People can now be invited by email, and anyone who forgets their password can reset it themselves.
You will want to set up a mail relay for this release. Without one, AlphOne still runs and invitations still work, but you have to copy each activation link out of the screen and pass it on by hand, and password reset cannot be used at all.
What is new
Invite someone by email address and they receive a link to choose their own password. Administrators no longer set a password on behalf of a new person, so nobody but the account holder ever knows it. A pending invitation can be resent, which replaces the earlier link.
The login screen now offers a password reset. The person receives a link by email and chooses a new password, which signs out every other session that account had open.
Asking for a reset again sends another link, and the earlier one keeps working. This means a reset email lost to a spam folder is fixed by simply asking again. Three links may be waiting at once, and using any one of them retires the rest.
The reset form answers exactly the same way for every address, whether or not an account exists and whether or not the email was delivered. It cannot be used to find out who has an account here. Delivery problems are written to the server log instead.
Setting up mail
Set ALPHONE_SMTP_HOST, ALPHONE_SMTP_FROM and ALPHONE_PUBLIC_URL. The public address is the one your users reach AlphOne at, and it must be a plain site address with no path, query or fragment, because the emailed links are built from it.
ALPHONE_SMTP_PORT defaults to 587 and ALPHONE_SMTP_TLS to mandatory. Set a username and password if your relay needs them. Everything else is optional: link lifetimes, how many reset links may stand at once, how often one address may be mailed, and a directory of your own email templates. The full list with defaults is in .env.example.
Upgrading
Migrations run when the container starts. Take a backup first.
This release adds a table for invitation and reset links, and marks every existing account as already activated, so everyone can sign in exactly as before. No existing data is changed or moved.