mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-14 06:19:17 +00:00
perf: 修复首页登录mfa错误提示
This commit is contained in:
@@ -44,7 +44,7 @@ class MFASendCodeApi(AuthMixin, CreateAPIView):
|
||||
else:
|
||||
user = get_object_or_404(User, username=username)
|
||||
|
||||
mfa_backend = user.get_mfa_backend_by_type(mfa_type)
|
||||
mfa_backend = user.get_active_mfa_backend_by_type(mfa_type)
|
||||
if not mfa_backend or not mfa_backend.challenge_required:
|
||||
raise ValidationError('MFA type not support: {} {}'.format(mfa_type, mfa_backend))
|
||||
mfa_backend.send_challenge()
|
||||
|
@@ -60,7 +60,7 @@ block_mfa_msg = _(
|
||||
"(please contact admin to unlock it or try again after {} minutes)"
|
||||
)
|
||||
mfa_error_msg = _(
|
||||
"{error},"
|
||||
"{error}, "
|
||||
"You can also try {times_try} times "
|
||||
"(The account will be temporarily locked for {block_time} minutes)"
|
||||
)
|
||||
|
@@ -10,6 +10,7 @@ otp_failed_msg = _("OTP code invalid, or server time error")
|
||||
class MFAOtp(BaseMFA):
|
||||
name = 'otp'
|
||||
display_name = _('OTP')
|
||||
placeholder = _('OTP verification code')
|
||||
|
||||
def check_code(self, code):
|
||||
from users.utils import check_otp_code
|
||||
|
@@ -9,7 +9,8 @@ mfa_failed_msg = _("Radius verify code invalid")
|
||||
|
||||
class MFARadius(BaseMFA):
|
||||
name = 'otp_radius'
|
||||
display_name = _('Radius MFA')
|
||||
display_name = 'Radius'
|
||||
placeholder = _("Radius verification code")
|
||||
|
||||
def check_code(self, code):
|
||||
assert self.is_authenticated()
|
||||
|
@@ -19,8 +19,12 @@ class MFASms(BaseMFA):
|
||||
|
||||
def check_code(self, code):
|
||||
assert self.is_authenticated()
|
||||
ok = self.sms.verify(code)
|
||||
msg = '' if ok else sms_failed_msg
|
||||
ok = False
|
||||
msg = ''
|
||||
try:
|
||||
ok = self.sms.verify(code)
|
||||
except Exception as e:
|
||||
msg = str(e)
|
||||
return ok, msg
|
||||
|
||||
def is_active(self):
|
||||
|
@@ -312,10 +312,13 @@ class MFAMixin:
|
||||
|
||||
ok = False
|
||||
mfa_backend = user.get_mfa_backend_by_type(mfa_type)
|
||||
if mfa_backend:
|
||||
ok, msg = mfa_backend.check_code(code)
|
||||
backend_error = _('The MFA type ({}) is not enabled')
|
||||
if not mfa_backend:
|
||||
msg = backend_error.format(mfa_type)
|
||||
elif not mfa_backend.is_active():
|
||||
msg = backend_error.format(mfa_backend.display_name)
|
||||
else:
|
||||
msg = _('The MFA type({}) is not supported'.format(mfa_type))
|
||||
ok, msg = mfa_backend.check_code(code)
|
||||
|
||||
if ok:
|
||||
self.mark_mfa_ok(mfa_type)
|
||||
|
@@ -109,7 +109,7 @@
|
||||
}
|
||||
|
||||
.select-con {
|
||||
width: 22%;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.mfa-div {
|
||||
|
@@ -3,7 +3,7 @@
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}
|
||||
{% trans 'MFA' %}
|
||||
{% trans 'MFA Auth' %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
Reference in New Issue
Block a user