1dc0c22cb7
* Re-introduce Email Verification code Revert "Revert "Email verification"" This reverts commit d154d8bff259350523a0f139e844db96c43d2ee1. * Uses MJML to generate Reset Password email * Sends Password Reset and Email Confirmation emails using MJML template * Sends verified status along with user data * API endpoint for resending email verification confirmation * Displays verification status on Account page and allows resending * Send back error string * Passes email address through to sign/verify helper * Uses enum-style object to set verified state * Sends minimal info when user verifies since it can be done without login * Provides /verify UI and sends confirmation token to API * Better name for JWT secret token env var * Adds mail config variables to Readme * Encrypts email address in JWT The JWT sent as the token in the Confirm Password URL can be unencoded by anyone, although it's signature can only be verified by us. To ensure that no passwords are leaked, we encrypt the email address before creating the token. * Removes unused mail templates * Resets verified flag when email is changed and sends another email * Moves email confirmation functions next to each other * Extracts random token generator to helper * Moves email confirmation actions into Redux - updates the AccountForm label with a message to check inbox - show status when verifying email token * Uses generated token stored in DB for email confirmation * Sets email confirmation status to verified if logging in from Github * Sends email using new method on account creation * Fixes linting errors * Removes replyTo config
126 lines
5.2 KiB
JavaScript
126 lines
5.2 KiB
JavaScript
export const UPDATE_FILE_CONTENT = 'UPDATE_FILE_CONTENT';
|
|
export const TOGGLE_SKETCH = 'TOGGLE_SKETCH';
|
|
|
|
export const START_SKETCH = 'START_SKETCH';
|
|
export const STOP_SKETCH = 'STOP_SKETCH';
|
|
|
|
export const START_ACCESSIBLE_OUTPUT = 'START_ACCESSIBLE_OUTPUT';
|
|
export const STOP_ACCESSIBLE_OUTPUT = 'STOP_ACCESSIBLE_OUTPUT';
|
|
|
|
export const OPEN_PREFERENCES = 'OPEN_PREFERENCES';
|
|
export const CLOSE_PREFERENCES = 'CLOSE_PREFERENCES';
|
|
export const SET_FONT_SIZE = 'SET_FONT_SIZE';
|
|
|
|
export const INCREASE_INDENTATION = 'INCREASE_INDENTATION';
|
|
export const DECREASE_INDENTATION = 'DECREASE_INDENTATION';
|
|
export const UPDATE_INDENTATION = 'UPDATE_INDENTATION';
|
|
export const SET_INDENTATION = 'SET_INDENTATION';
|
|
|
|
export const INDENT_WITH_SPACE = 'INDENT_WITH_SPACE';
|
|
export const INDENT_WITH_TAB = 'INDENT_WITH_TAB';
|
|
|
|
export const AUTH_USER = 'AUTH_USER';
|
|
export const UNAUTH_USER = 'UNAUTH_USER';
|
|
export const AUTH_ERROR = 'AUTH_ERROR';
|
|
|
|
export const SETTINGS_UPDATED = 'SETTINGS_UPDATED';
|
|
|
|
export const SET_PROJECT_NAME = 'SET_PROJECT_NAME';
|
|
export const SET_SERVE_SECURE = 'SET_SERVE_SECURE';
|
|
|
|
export const PROJECT_SAVE_SUCCESS = 'PROJECT_SAVE_SUCCESS';
|
|
export const PROJECT_SAVE_FAIL = 'PROJECT_SAVE_FAIL';
|
|
export const NEW_PROJECT = 'NEW_PROJECT';
|
|
export const RESET_PROJECT = 'RESET_PROJECT';
|
|
export const SHOW_EDIT_PROJECT_NAME = 'SHOW_EDIT_PROJECT_NAME';
|
|
export const HIDE_EDIT_PROJECT_NAME = 'HIDE_EDIT_PROJECT_NAME';
|
|
|
|
export const SET_PROJECT = 'SET_PROJECT';
|
|
export const SET_PROJECTS = 'SET_PROJECTS';
|
|
|
|
export const DELETE_PROJECT = 'DELETE_PROJECT';
|
|
|
|
export const SET_SELECTED_FILE = 'SET_SELECTED_FILE';
|
|
export const SHOW_MODAL = 'SHOW_MODAL';
|
|
export const HIDE_MODAL = 'HIDE_MODAL';
|
|
export const CREATE_FILE = 'CREATE_FILE';
|
|
export const SET_BLOB_URL = 'SET_BLOB_URL';
|
|
|
|
export const EXPAND_SIDEBAR = 'EXPAND_SIDEBAR';
|
|
export const COLLAPSE_SIDEBAR = 'COLLAPSE_SIDEBAR';
|
|
|
|
export const CONSOLE_EVENT = 'CONSOLE_EVENT';
|
|
export const CLEAR_CONSOLE = 'CLEAR_CONSOLE';
|
|
export const EXPAND_CONSOLE = 'EXPAND_CONSOLE';
|
|
export const COLLAPSE_CONSOLE = 'COLLAPSE_CONSOLE';
|
|
|
|
export const UPDATE_LINT_MESSAGE = 'UPDATE_LINT_MESSAGE';
|
|
export const CLEAR_LINT_MESSAGE = 'CLEAR_LINT_MESSAGE';
|
|
|
|
export const SHOW_FILE_OPTIONS = 'SHOW_FILE_OPTIONS';
|
|
export const HIDE_FILE_OPTIONS = 'HIDE_FILE_OPTIONS';
|
|
|
|
export const UPDATE_FILE_NAME = 'UPDATE_FILE_NAME';
|
|
export const DELETE_FILE = 'DELETE_FILE';
|
|
export const SHOW_EDIT_FILE_NAME = 'SHOW_EDIT_FILE_NAME';
|
|
export const HIDE_EDIT_FILE_NAME = 'HIDE_EDIT_FILE_NAME';
|
|
|
|
export const SET_AUTOSAVE = 'SET_AUTOSAVE';
|
|
export const SET_LINT_WARNING = 'SET_LINT_WARNING';
|
|
export const SET_PREFERENCES = 'SET_PREFERENCES';
|
|
export const SET_TEXT_OUTPUT = 'SET_TEXT_OUTPUT';
|
|
export const SET_GRID_OUTPUT = 'SET_GRID_OUTPUT';
|
|
export const SET_SOUND_OUTPUT = 'SET_SOUND_OUTPUT';
|
|
|
|
export const OPEN_PROJECT_OPTIONS = 'OPEN_PROJECT_OPTIONS';
|
|
export const CLOSE_PROJECT_OPTIONS = 'CLOSE_PROJECT_OPTIONS';
|
|
export const SHOW_NEW_FOLDER_MODAL = 'SHOW_NEW_FOLDER_MODAL';
|
|
export const CLOSE_NEW_FOLDER_MODAL = 'CLOSE_NEW_FOLDER_MODAL';
|
|
export const SHOW_FOLDER_CHILDREN = 'SHOW_FOLDER_CHILDREN';
|
|
export const HIDE_FOLDER_CHILDREN = 'HIDE_FOLDER_CHILDREN';
|
|
|
|
export const SHOW_SHARE_MODAL = 'SHOW_SHARE_MODAL';
|
|
export const CLOSE_SHARE_MODAL = 'CLOSE_SHARE_MODAL';
|
|
export const SHOW_EDITOR_OPTIONS = 'SHOW_EDITOR_OPTIONS';
|
|
export const CLOSE_EDITOR_OPTIONS = 'CLOSE_EDITOR_OPTIONS';
|
|
export const SHOW_KEYBOARD_SHORTCUT_MODAL = 'SHOW_KEYBOARD_SHORTCUT_MODAL';
|
|
export const CLOSE_KEYBOARD_SHORTCUT_MODAL = 'CLOSE_KEYBOARD_SHORTCUT_MODAL';
|
|
export const SHOW_TOAST = 'SHOW_TOAST';
|
|
export const HIDE_TOAST = 'HIDE_TOAST';
|
|
export const SET_TOAST_TEXT = 'SET_TOAST_TEXT';
|
|
export const SET_THEME = 'SET_THEME';
|
|
|
|
export const SET_UNSAVED_CHANGES = 'SET_UNSAVED_CHANGES';
|
|
export const SET_AUTOREFRESH = 'SET_AUTOREFRESH';
|
|
export const START_SKETCH_REFRESH = 'START_SKETCH_REFRESH';
|
|
export const END_SKETCH_REFRESH = 'END_SKETCH_REFRESH';
|
|
|
|
export const DETECT_INFINITE_LOOPS = 'DETECT_INFINITE_LOOPS';
|
|
export const RESET_INFINITE_LOOPS = 'RESET_INFINITE_LOOPS';
|
|
|
|
export const RESET_PASSWORD_INITIATE = 'RESET_PASSWORD_INITIATE';
|
|
export const RESET_PASSWORD_RESET = 'RESET_PASSWORD_RESET';
|
|
export const INVALID_RESET_PASSWORD_TOKEN = 'INVALID_RESET_PASSWORD_TOKEN';
|
|
|
|
export const EMAIL_VERIFICATION_INITIATE = 'EMAIL_VERIFICATION_INITIATE';
|
|
export const EMAIL_VERIFICATION_VERIFY = 'EMAIL_VERIFICATION_VERIFY';
|
|
export const EMAIL_VERIFICATION_VERIFIED = 'EMAIL_VERIFICATION_VERIFIED';
|
|
export const EMAIL_VERIFICATION_INVALID = 'EMAIL_VERIFICATION_INVALID';
|
|
|
|
// eventually, handle errors more specifically and better
|
|
export const ERROR = 'ERROR';
|
|
|
|
export const JUST_OPENED_PROJECT = 'JUST_OPENED_PROJECT';
|
|
export const RESET_JUST_OPENED_PROJECT = 'RESET_JUST_OPENED_PROJECT';
|
|
|
|
export const SET_PROJECT_SAVED_TIME = 'SET_PROJECT_SAVED_TIME';
|
|
export const RESET_PROJECT_SAVED_TIME = 'RESET_PROJECT_SAVED_TIME';
|
|
export const SET_PREVIOUS_PATH = 'SET_PREVIOUS_PATH';
|
|
export const SHOW_ERROR_MODAL = 'SHOW_ERROR_MODAL';
|
|
export const HIDE_ERROR_MODAL = 'HIDE_ERROR_MODAL';
|
|
|
|
export const PERSIST_STATE = 'PERSIST_STATE';
|
|
export const CLEAR_PERSISTED_STATE = 'CLEAR_PERSISTED_STATE';
|
|
|
|
export const SHOW_HELP_MODAL = 'SHOW_HELP_MODAL';
|
|
export const HIDE_HELP_MODAL = 'HIDE_HELP_MODAL';
|