views.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:SpongeAuth 作者: lukegb 项目源码 文件源码
def change_email_step2(request, uidb64, token, new_email):
    bytes_uid = urlsafe_base64_decode(uidb64)
    try:
        uid = int(bytes_uid)
    except ValueError:
        raise SuspiciousOperation('change_email_step2 received invalid base64 user ID: {}'.format(
            bytes_uid))

    if uid != request.user.id:
        raise PermissionDenied('UID mismatch - user is {}, request was for {}'.format(
            request.user.id, uid))

    user = get_object_or_404(models.User, pk=uid)
    old_email = user.email
    new_email = urlsafe_base64_decode(new_email).decode('utf8')
    user.email = new_email

    if not verify_token_generator.check_token(user, token):
        raise Http404('token invalid')

    if old_email == new_email:
        messages.info(request, _('Your email address has already been changed.'))
    else:
        was_verified = user.email_verified
        user.email_verified = True
        user.email = new_email
        user.save()

        if was_verified:
            _send_email_changed_email(request, user, old_email)

        messages.success(request, _('Your email address has been changed successfully.'))

    return redirect('index')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号