mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 16:14:02 +00:00
two_factor: Add templates for 2-factor-auth setup.
Note from Tim: We'll likely need to do some work on the strings in these before translating, so I removed some translation tags.
This commit is contained in:
42
templates/two_factor/_wizard_forms.html
Normal file
42
templates/two_factor/_wizard_forms.html
Normal file
@@ -0,0 +1,42 @@
|
||||
{% if wizard.steps.current == 'token' %}
|
||||
{% if device.method == 'call' %}
|
||||
<p>We are calling your phone right now, please enter the
|
||||
digits you hear.</p>
|
||||
{% elif device.method == 'sms' %}
|
||||
<p>We sent you a text message, please enter the token in the text message.</p>
|
||||
{% else %}
|
||||
<p>Please enter the 6-digit number from your token generator.</p>
|
||||
{% endif %}
|
||||
{% elif wizard.steps.current == 'backup' %}
|
||||
<p>
|
||||
Use this form for entering backup tokens for logging in.
|
||||
These tokens have been generated for you to print and keep safe. Please
|
||||
enter one of these backup tokens to login to your account.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% for field in wizard.form %}
|
||||
<div class="input-box no-validation">
|
||||
{{ field }}
|
||||
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if other_devices %}
|
||||
<p>{{ _("Or, alternatively, use one of your backup phones:") }}</p>
|
||||
<p>
|
||||
{% for other in other_devices %}
|
||||
<button name="challenge_device" value="{{ other.persistent_id }}"
|
||||
class="btn btn-default btn-block" type="submit">
|
||||
{{ other|device_action }}
|
||||
</button>
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if backup_tokens %}
|
||||
<p>{{ _("As a last resort, you can use a backup token:") }}</p>
|
||||
<p>
|
||||
<button name="wizard_goto_step" type="submit" value="backup"
|
||||
class="btn btn-default btn-block">{{ _("Use backup token") }}</button>
|
||||
</p>
|
||||
{% endif %}
|
@@ -69,9 +69,13 @@
|
||||
<form name="login_form" id="login_form" method="post" class="login-form"
|
||||
action="{{ url('django.contrib.auth.views.login') }}?next={{ next }}">
|
||||
|
||||
{% if two_factor_authentication_enabled %}
|
||||
{{ wizard.management_form }}
|
||||
{% endif %}
|
||||
{{ csrf_input }}
|
||||
|
||||
<!-- .no-validation is for removing the red star in CSS -->
|
||||
{% if not two_factor_authentication_enabled or wizard.steps.current == 'auth' %}
|
||||
<div class="input-box no-validation">
|
||||
<input id="id_username" type="{% if not require_email_format_usernames %}text{% else %}email{% endif %}"
|
||||
name="username" class="{% if require_email_format_usernames %}email {% endif %}required"
|
||||
@@ -92,6 +96,9 @@
|
||||
<input id="id_password" name="password" class="required" type="password" required />
|
||||
<label for="id_password" class="control-label">{{ _('Password') }}</label>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include "two_factor/_wizard_forms.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% if form.errors %}
|
||||
<div class="alert alert-error">
|
||||
|
@@ -131,6 +131,7 @@ def zulip_default_context(request: HttpRequest) -> Dict[str, Any]:
|
||||
'password_min_length': settings.PASSWORD_MIN_LENGTH,
|
||||
'password_min_guesses': settings.PASSWORD_MIN_GUESSES,
|
||||
'jitsi_server_url': settings.JITSI_SERVER_URL,
|
||||
'two_factor_authentication_enabled': settings.TWO_FACTOR_AUTHENTICATION_ENABLED,
|
||||
'zulip_version': ZULIP_VERSION,
|
||||
'user_is_authenticated': user_is_authenticated,
|
||||
'settings_path': settings_path,
|
||||
|
@@ -117,6 +117,7 @@ class TemplateTestCase(ZulipTestCase):
|
||||
'zerver/handlebars_compilation_failed.html',
|
||||
'zerver/portico-header.html',
|
||||
'zerver/deprecation_notice.html',
|
||||
'two_factor/_wizard_forms.html',
|
||||
]
|
||||
|
||||
integrations_regexp = re.compile('zerver/integrations/.*.html')
|
||||
|
@@ -6,6 +6,7 @@ from django.template.defaultfilters import slugify, pluralize
|
||||
from django.urls import reverse
|
||||
from django.utils import translation
|
||||
from jinja2 import Environment
|
||||
from two_factor.templatetags.two_factor import device_action
|
||||
|
||||
from .compressors import minified_js
|
||||
from zerver.templatetags.app_filters import display_list, render_markdown_path
|
||||
@@ -25,5 +26,6 @@ def environment(**options: Any) -> Environment:
|
||||
env.filters['slugify'] = slugify
|
||||
env.filters['pluralize'] = pluralize
|
||||
env.filters['display_list'] = display_list
|
||||
env.filters['device_action'] = device_action
|
||||
|
||||
return env
|
||||
|
Reference in New Issue
Block a user