From 417337c4d23de733c0758798217a2df9e2ff1216 Mon Sep 17 00:00:00 2001 From: zema1 Date: Fri, 15 Dec 2017 20:54:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=87=A0=E5=A4=84visible?= =?UTF-8?q?=E6=9C=AA=E8=BF=87=E6=BB=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- account/views/oj.py | 2 +- contest/views/oj.py | 4 ++-- submission/views/oj.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/account/views/oj.py b/account/views/oj.py index bc8c9cf3..4aaec7cb 100644 --- a/account/views/oj.py +++ b/account/views/oj.py @@ -396,7 +396,7 @@ class ProfileProblemDisplayIDRefreshAPI(APIView): ids = list(acm_problems.keys()) + list(oi_problems.keys()) if not ids: return self.success() - display_ids = Problem.objects.filter(id__in=ids).values_list("_id", flat=True) + display_ids = Problem.objects.filter(id__in=ids, visible=True).values_list("_id", flat=True) id_map = dict(zip(ids, display_ids)) for k, v in acm_problems.items(): v["_id"] = id_map[k] diff --git a/contest/views/oj.py b/contest/views/oj.py index 44adc020..9db09bfc 100644 --- a/contest/views/oj.py +++ b/contest/views/oj.py @@ -32,7 +32,7 @@ class ContestAPI(APIView): if not id: return self.error("Invalid parameter, id is required") try: - contest = Contest.objects.get(id=id) + contest = Contest.objects.get(id=id, visible=True) except Contest.DoesNotExist: return self.error("Contest does not exist") data = ContestSerializer(contest).data @@ -107,7 +107,7 @@ class ContestRankAPI(APIView): @check_contest_permission(check_type="ranks") def get(self, request): force_refresh = request.GET.get("force_refresh") - is_contest_admin = request.user.is_contest_admin(self.contest) + is_contest_admin = request.user.is_authenticated() and request.user.is_contest_admin(self.contest) if self.contest.rule_type == ContestRuleType.OI: serializer = OIContestRankSerializer else: diff --git a/submission/views/oj.py b/submission/views/oj.py index 3c035015..5d6351b0 100644 --- a/submission/views/oj.py +++ b/submission/views/oj.py @@ -51,7 +51,7 @@ class SubmissionAPI(APIView): hide_id = False if data.get("contest_id"): try: - contest = Contest.objects.get(id=data["contest_id"]) + contest = Contest.objects.get(id=data["contest_id"], visible=True) except Contest.DoesNotExist: return self.error("Contest doesn't exist.") if contest.status == ContestStatus.CONTEST_ENDED: