Merge branch 'new-arch' into otp-auth
* new-arch: fix error package name and add pip mirrorwq 废弃 huey,多数据库连接的时候存在 connection 无法释放的问题,回到 celery 修复 huey 队列不会释放数据库连接的问题,是用法不对 修复typo 完善 sso 登录部分 修复typo 规范配置文件写法;数据库用户名也在环境变量中取 个人博客链接前面也增加图标 修改判题机器的配置文件 删除不再使用的配置文件 Conflicts: account/views.py
This commit is contained in:
@@ -16,9 +16,10 @@ from rest_framework.response import Response
|
||||
from utils.shortcuts import (serializer_invalid_response, error_response,
|
||||
success_response, error_page, paginate, rand_str)
|
||||
from utils.captcha import Captcha
|
||||
from utils.mail import send_email
|
||||
from utils.otp_auth import OtpAuth
|
||||
|
||||
from .tasks import _send_email
|
||||
|
||||
from .decorators import login_required
|
||||
from .models import User, UserProfile
|
||||
|
||||
@@ -76,7 +77,7 @@ def index_page(request):
|
||||
return render(request, "oj/index.html")
|
||||
|
||||
if request.META.get('HTTP_REFERER') or request.GET.get("index"):
|
||||
return render(request, "oj/index.html")
|
||||
return render(request, "oj/index.html")
|
||||
else:
|
||||
return http.HttpResponseRedirect('/problems/')
|
||||
|
||||
@@ -300,22 +301,25 @@ class ApplyResetPasswordAPIView(APIView):
|
||||
user = User.objects.get(email=data["email"])
|
||||
except User.DoesNotExist:
|
||||
return error_response(u"用户不存在")
|
||||
if user.reset_password_token_create_time and (now() - user.reset_password_token_create_time).total_seconds() < 20 * 60:
|
||||
if user.reset_password_token_create_time and (
|
||||
now() - user.reset_password_token_create_time).total_seconds() < 20 * 60:
|
||||
return error_response(u"20分钟内只能找回一次密码")
|
||||
user.reset_password_token = rand_str()
|
||||
user.reset_password_token_create_time = now()
|
||||
user.save()
|
||||
email_template = codecs.open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r", "utf-8").read()
|
||||
email_template = codecs.open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r",
|
||||
"utf-8").read()
|
||||
|
||||
email_template = email_template.replace("{{ username }}", user.username).\
|
||||
replace("{{ website_name }}", settings.WEBSITE_INFO["website_name"]).\
|
||||
replace("{{ link }}", request.scheme + "://" + request.META['HTTP_HOST'] + "/reset_password/t/" + user.reset_password_token)
|
||||
email_template = email_template.replace("{{ username }}", user.username). \
|
||||
replace("{{ website_name }}", settings.WEBSITE_INFO["website_name"]). \
|
||||
replace("{{ link }}", request.scheme + "://" + request.META[
|
||||
'HTTP_HOST'] + "/reset_password/t/" + user.reset_password_token)
|
||||
|
||||
send_email(settings.WEBSITE_INFO["website_name"],
|
||||
user.email,
|
||||
user.username,
|
||||
settings.WEBSITE_INFO["website_name"] + u" 登录信息找回邮件",
|
||||
email_template)
|
||||
_send_email.delay(settings.WEBSITE_INFO["website_name"],
|
||||
user.email,
|
||||
user.username,
|
||||
settings.WEBSITE_INFO["website_name"] + u" 登录信息找回邮件",
|
||||
email_template)
|
||||
return success_response(u"邮件发送成功,请前往您的邮箱查收")
|
||||
else:
|
||||
return serializer_invalid_response(serializer)
|
||||
@@ -363,7 +367,10 @@ class SSOAPIView(APIView):
|
||||
if serializer.is_valid():
|
||||
try:
|
||||
user = User.objects.get(auth_token=serializer.data["token"])
|
||||
return success_response({"username": user.username})
|
||||
user.auth_token = None
|
||||
user.save()
|
||||
return success_response(
|
||||
{"username": user.username, "admin_type": user.admin_type, "avatar": user.userprofile.avatar})
|
||||
except User.DoesNotExist:
|
||||
return error_response(u"用户不存在")
|
||||
else:
|
||||
@@ -377,7 +384,8 @@ class SSOAPIView(APIView):
|
||||
token = rand_str()
|
||||
request.user.auth_token = token
|
||||
request.user.save()
|
||||
return render(request, "oj/account/sso.html", {"redirect_url": callback + "?token=" + token, "callback": callback})
|
||||
return render(request, "oj/account/sso.html",
|
||||
{"redirect_url": callback + "?token=" + token, "callback": callback})
|
||||
|
||||
|
||||
def reset_password_page(request, token):
|
||||
|
||||
Reference in New Issue
Block a user