mirror of https://github.com/jumpserver/jumpserver
feat: 重置 MFA 发个邮件 #754
parent
799d1e4043
commit
8ec26dea43
|
@ -16,6 +16,7 @@ from common.mixins import CommonApiMixin
|
||||||
from common.utils import get_logger
|
from common.utils import get_logger
|
||||||
from orgs.utils import current_org
|
from orgs.utils import current_org
|
||||||
from orgs.models import ROLE as ORG_ROLE, OrganizationMember
|
from orgs.models import ROLE as ORG_ROLE, OrganizationMember
|
||||||
|
from users.utils import send_reset_mfa_mail
|
||||||
from .. import serializers
|
from .. import serializers
|
||||||
from ..serializers import UserSerializer, UserRetrieveSerializer, MiniUserSerializer, InviteSerializer
|
from ..serializers import UserSerializer, UserRetrieveSerializer, MiniUserSerializer, InviteSerializer
|
||||||
from .mixins import UserQuerysetMixin
|
from .mixins import UserQuerysetMixin
|
||||||
|
@ -201,4 +202,5 @@ class UserResetOTPApi(UserQuerysetMixin, generics.RetrieveAPIView):
|
||||||
if user.mfa_enabled:
|
if user.mfa_enabled:
|
||||||
user.reset_mfa()
|
user.reset_mfa()
|
||||||
user.save()
|
user.save()
|
||||||
|
send_reset_mfa_mail(user)
|
||||||
return Response({"msg": "success"})
|
return Response({"msg": "success"})
|
||||||
|
|
|
@ -235,6 +235,28 @@ def send_reset_ssh_key_mail(user):
|
||||||
send_mail_async.delay(subject, message, recipient_list, html_message=message)
|
send_mail_async.delay(subject, message, recipient_list, html_message=message)
|
||||||
|
|
||||||
|
|
||||||
|
def send_reset_mfa_mail(user):
|
||||||
|
subject = _('MFA Reset')
|
||||||
|
recipient_list = [user.email]
|
||||||
|
message = _("""
|
||||||
|
Hello %(name)s:
|
||||||
|
<br>
|
||||||
|
Your MFA has been reset by site administrator.
|
||||||
|
Please login and reset your MFA.
|
||||||
|
<br>
|
||||||
|
<a href="%(login_url)s">Login direct</a>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
""") % {
|
||||||
|
'name': user.name,
|
||||||
|
'login_url': reverse('authentication:login', external=True),
|
||||||
|
}
|
||||||
|
if settings.DEBUG:
|
||||||
|
logger.debug(message)
|
||||||
|
|
||||||
|
send_mail_async.delay(subject, message, recipient_list, html_message=message)
|
||||||
|
|
||||||
|
|
||||||
def get_user_or_pre_auth_user(request):
|
def get_user_or_pre_auth_user(request):
|
||||||
user = request.user
|
user = request.user
|
||||||
if user.is_authenticated:
|
if user.is_authenticated:
|
||||||
|
|
Loading…
Reference in New Issue