feat: 重置 MFA 发个邮件 #754

pull/5592/head^2
xinwen 2021-02-25 09:19:31 +08:00 committed by 老广
parent 799d1e4043
commit 8ec26dea43
2 changed files with 24 additions and 0 deletions

View File

@ -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"})

View File

@ -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: