mirror of
https://github.com/discourse/discourse.git
synced 2025-09-04 08:47:37 +08:00
Merge pull request #5612 from discourse/featheredtoast-two-factor-login
Featheredtoast two factor login
This commit is contained in:
commit
8964e75ad6
54 changed files with 1392 additions and 81 deletions
|
@ -129,13 +129,14 @@ module Discourse
|
|||
|
||||
# Configure sensitive parameters which will be filtered from the log file.
|
||||
config.filter_parameters += [
|
||||
:password,
|
||||
:pop3_polling_password,
|
||||
:api_key,
|
||||
:s3_secret_access_key,
|
||||
:twitter_consumer_secret,
|
||||
:facebook_app_secret,
|
||||
:github_client_secret
|
||||
:password,
|
||||
:pop3_polling_password,
|
||||
:api_key,
|
||||
:s3_secret_access_key,
|
||||
:twitter_consumer_secret,
|
||||
:facebook_app_secret,
|
||||
:github_client_secret,
|
||||
:second_factor_token,
|
||||
]
|
||||
|
||||
# Enable the asset pipeline
|
||||
|
|
|
@ -207,6 +207,7 @@ en:
|
|||
not_implemented: "That feature hasn't been implemented yet, sorry!"
|
||||
no_value: "No"
|
||||
yes_value: "Yes"
|
||||
submit: "Submit"
|
||||
generic_error: "Sorry, an error has occurred."
|
||||
generic_error_with_reason: "An error occurred: %{error}"
|
||||
sign_up: "Sign Up"
|
||||
|
@ -707,6 +708,17 @@ en:
|
|||
choose_new: "Choose a new password"
|
||||
choose: "Choose a password"
|
||||
|
||||
second_factor:
|
||||
title: "Two Factor Authentication"
|
||||
enable: "Enable Two Factor Authentication"
|
||||
disable: "Disable Two Factor Authentication"
|
||||
confirm_password_description: "Confirm your password to continue enabling Two Factor Authentication."
|
||||
enable_description: "To complete Two Factor Authentication setup, scan the following QR code and submit a Two Factor Authentication code."
|
||||
disable_description: "Enter a Two Factor Authentication code to disable."
|
||||
show_key_description: "Or enter the key manually."
|
||||
info_prompt: "What is Two Factor Authentication?"
|
||||
extended_description: "Two Factor Authentication adds an extra security step to logging in by requiring a one-time token in addition to your password. These tokens are generated by compatible apps for iPhone or Android such as <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2\" target='_blank'>Google Authenticator</a>, <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target='_blank'>Authy</a>, and <a href=\"https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp\" target='_blank'>FreeOTP</a>."
|
||||
|
||||
change_about:
|
||||
title: "Change About Me"
|
||||
error: "There was an error changing this value."
|
||||
|
@ -1097,6 +1109,9 @@ en:
|
|||
title: "Log In"
|
||||
username: "User"
|
||||
password: "Password"
|
||||
second_factor_title: "Two Factor Authentication Required"
|
||||
second_factor_description: "Enter a generated verification code."
|
||||
second_factor_label: "Code"
|
||||
email_placeholder: "email or username"
|
||||
caps_lock_warning: "Caps Lock is on"
|
||||
error: "Unknown error"
|
||||
|
@ -3262,6 +3277,7 @@ en:
|
|||
post_locked: "post locked"
|
||||
post_unlocked: "post unlocked"
|
||||
check_personal_message: "check personal message"
|
||||
disabled_second_factor: "disable 2 factor authentication"
|
||||
screened_emails:
|
||||
title: "Screened Emails"
|
||||
description: "When someone tries to create a new account, the following email addresses will be checked and the registration will be blocked, or some other action performed."
|
||||
|
|
|
@ -49,6 +49,7 @@ en:
|
|||
loading: "Loading"
|
||||
powered_by_html: 'Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled'
|
||||
log_in: "Log In"
|
||||
submit: "Submit"
|
||||
|
||||
purge_reason: "Automatically deleted as abandoned, deactivated account"
|
||||
disable_remote_images_download_reason: "Remote images download was disabled because there wasn't enough disk space available."
|
||||
|
@ -1761,6 +1762,7 @@ en:
|
|||
login:
|
||||
not_approved: "Your account hasn't been approved yet. You will be notified by email when you are ready to log in."
|
||||
incorrect_username_email_or_password: "Incorrect username, email or password"
|
||||
incorrect_password: "Incorrect password"
|
||||
wait_approval: "Thanks for signing up. We will notify you when your account has been approved."
|
||||
active: "Your account is activated and ready to use."
|
||||
activate_email: "<p>You’re almost done! We sent an activation mail to <b>%{email}</b>. Please follow the instructions in the mail to activate your account.</p><p>If it doesn’t arrive, check your spam folder.</p>"
|
||||
|
@ -1783,6 +1785,9 @@ en:
|
|||
auth_complete: "Authentication is complete."
|
||||
click_to_continue: "Click here to continue."
|
||||
already_logged_in: "Oops, looks like you are attempting to accept an invitation for another user. If you are not %{current_user}, please log out and try again."
|
||||
second_factor_title: "Two Factor Authentication Required"
|
||||
second_factor_description: "Enter a generated authentication code."
|
||||
invalid_second_factor_code: "Invalid Two Factor Authentication Code"
|
||||
|
||||
user:
|
||||
no_accounts_associated: "No accounts associated"
|
||||
|
@ -2730,6 +2735,15 @@ en:
|
|||
|
||||
|
||||
|
||||
account_second_factor_disabled:
|
||||
title: "Two Factor Authentication disabled"
|
||||
subject_template: "[%{email_prefix}] Two Factor Authentication disabled"
|
||||
text_body_template: |
|
||||
Your account’s Two Factor Authentication at %{site_name} has been disabled. The account no longer needs a Two Factor Authentication code to sign in.
|
||||
|
||||
If you have any questions, [contact our friendly staff](%{base_url}/about).
|
||||
|
||||
|
||||
digest:
|
||||
why: "A brief summary of %{site_link} since your last visit on %{last_seen_at}"
|
||||
since_last_visit: "Since your last visit"
|
||||
|
|
|
@ -129,6 +129,7 @@ Discourse::Application.routes.draw do
|
|||
get "tl3_requirements"
|
||||
put "anonymize"
|
||||
post "reset_bounce_score"
|
||||
put "disable_second_factor"
|
||||
end
|
||||
get "users/:id.json" => 'users#show', defaults: { format: 'json' }
|
||||
get 'users/:id/:username' => 'users#show', constraints: { username: RouteFormat.username }
|
||||
|
@ -302,6 +303,7 @@ Discourse::Application.routes.draw do
|
|||
get "session/current" => "session#current"
|
||||
get "session/csrf" => "session#csrf"
|
||||
get "session/email-login/:token" => "session#email_login"
|
||||
post "session/email-login/:token" => "session#email_login"
|
||||
get "composer_messages" => "composer_messages#index"
|
||||
post "composer/parse_html" => "composer#parse_html"
|
||||
|
||||
|
@ -329,12 +331,16 @@ Discourse::Application.routes.draw do
|
|||
end
|
||||
end
|
||||
|
||||
post "#{root_path}/second_factors" => "users#create_second_factor"
|
||||
put "#{root_path}/second_factor" => "users#update_second_factor"
|
||||
|
||||
put "#{root_path}/update-activation-email" => "users#update_activation_email"
|
||||
get "#{root_path}/hp" => "users#get_honeypot_value"
|
||||
post "#{root_path}/email-login" => "users#email_login"
|
||||
get "#{root_path}/admin-login" => "users#admin_login"
|
||||
put "#{root_path}/admin-login" => "users#admin_login"
|
||||
get "#{root_path}/admin-login/:token" => "users#admin_login"
|
||||
put "#{root_path}/admin-login/:token" => "users#admin_login"
|
||||
post "#{root_path}/toggle-anon" => "users#toggle_anon"
|
||||
post "#{root_path}/read-faq" => "users#read_faq"
|
||||
get "#{root_path}/search/users" => "users#search_users"
|
||||
|
@ -349,6 +355,7 @@ Discourse::Application.routes.draw do
|
|||
get "#{root_path}/activate-account/:token" => "users#activate_account"
|
||||
put({ "#{root_path}/activate-account/:token" => "users#perform_account_activation" }.merge(index == 1 ? { as: 'perform_activate_account' } : {}))
|
||||
get "#{root_path}/authorize-email/:token" => "users_email#confirm"
|
||||
put "#{root_path}/authorize-email/:token" => "users_email#confirm"
|
||||
get({
|
||||
"#{root_path}/confirm-admin/:token" => "users#confirm_admin",
|
||||
constraints: { token: /[0-9a-f]+/ }
|
||||
|
@ -380,6 +387,7 @@ Discourse::Application.routes.draw do
|
|||
put "#{root_path}/:username/preferences/badge_title" => "users#badge_title", constraints: { username: RouteFormat.username }
|
||||
get "#{root_path}/:username/preferences/username" => "users#preferences", constraints: { username: RouteFormat.username }
|
||||
put "#{root_path}/:username/preferences/username" => "users#username", constraints: { username: RouteFormat.username }
|
||||
get "#{root_path}/:username/preferences/second-factor" => "users#preferences", constraints: { username: RouteFormat.username }
|
||||
delete "#{root_path}/:username/preferences/user_image" => "users#destroy_user_image", constraints: { username: RouteFormat.username }
|
||||
put "#{root_path}/:username/preferences/avatar/pick" => "users#pick_avatar", constraints: { username: RouteFormat.username }
|
||||
get "#{root_path}/:username/preferences/card-badge" => "users#card_badge", constraints: { username: RouteFormat.username }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue