From 85b2fef22dc07e29119ec4757a660c1b5bd323f7 Mon Sep 17 00:00:00 2001 From: sxw Date: Sat, 5 Dec 2015 16:19:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=B0=8F=E7=BB=84=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E8=B5=9B=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/decorators.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/contest/decorators.py b/contest/decorators.py index 6388411..ebee482 100644 --- a/contest/decorators.py +++ b/contest/decorators.py @@ -66,7 +66,7 @@ def check_user_contest_permission(func): return error_page(request, u"比赛不存在") # 有密码的公开赛 - if contest.contest_type == PASSWORD_PROTECTED_CONTEST or contest.contest_type == PASSWORD_PROTECTED_GROUP_CONTEST: + if contest.contest_type == PASSWORD_PROTECTED_CONTEST: # 没有输入过密码 if contest.id not in request.session.get("contests", []): if request.is_ajax(): @@ -83,7 +83,15 @@ def check_user_contest_permission(func): else: return render(request, "oj/contest/no_contest_permission.html", {"reason": "group_limited", "show_tab": False, "contest": contest}) - + + if contest.contest_type == PASSWORD_PROTECTED_GROUP_CONTEST: + if not contest.groups.filter(id__in=request.user.group_set.all()).exists(): + if contest.id not in request.session.get("contests", []): + if request.is_ajax(): + return error_response(u"请先输入密码") + else: + return render(request, "oj/contest/no_contest_permission.html", + {"reason": "password_protect", "show_tab": False, "contest": contest}) # 比赛没有开始 if contest.status == CONTEST_NOT_START: if request.is_ajax():