比赛相关api都需要登录

This commit is contained in:
virusdefender 2018-06-30 14:40:35 +08:00
parent 1eff6b2abf
commit a2332b78cd

View File

@ -79,14 +79,15 @@ def check_contest_permission(check_type="details"):
except Contest.DoesNotExist:
return self.error("Contest %s doesn't exist" % contest_id)
# creator or owner
if user.is_authenticated() and user.is_contest_admin(self.contest):
return func(*args, **kwargs)
if self.contest.contest_type == ContestType.PASSWORD_PROTECTED_CONTEST:
# Anonymous
if not user.is_authenticated():
return self.error("Please login first.")
# creator or owner
if user.is_contest_admin(self.contest):
return func(*args, **kwargs)
if self.contest.contest_type == ContestType.PASSWORD_PROTECTED_CONTEST:
# password error
if self.contest.id not in request.session.get("accessible_contests", []):
return self.error("Password is required.")