Implement server invite codes #37
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This introduces the ability for a YeetFile instance admin to send out invites to a list of emails with unique signup codes. These signup codes are tied to the email they're sent to, and are removed after a user completes registration using that email and signup code. The code a user receives cannot be used to sign up for an ID-only account, and cannot be used to sign up with a different email address.
The invite codes are not stored in plaintext anywhere. They are hashed with bcrypt before storing in the database, and are only included in plaintext in the outbound email. When a user clicks the signup link in the email they received, the code is used to autofill the server password field, and does not require any further interaction from the user.
Enabling invite codes requires the following conditions:
YEETFILE_ALLOW_INVITESset to1YEETFILE_SERVER_PASSWORDset to a non-empty stringYEETFILE_EMAIL_*variables setYEETFILE_INSTANCE_ADMINset to the email address or account ID for the preferred admin userCloses #36