Skip to content

Commit 0770697

Browse files
veluca93gollux
authored andcommitted
Make API login succeed if the user would already be logged in.
Fixes #1445
1 parent 405f2a4 commit 0770697

File tree

1 file changed

+15
-0
lines changed
  • cms/server/contest/handlers

1 file changed

+15
-0
lines changed

cms/server/contest/handlers/api.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,22 @@ class ApiLoginHandler(ContestHandler):
4545
"""
4646
@multi_contest
4747
def post(self):
48+
current_user = self.get_current_user()
49+
4850
username = self.get_argument("username", "")
51+
52+
if current_user is not None:
53+
if username != "" and current_user.user.username != username:
54+
self.json(
55+
{"error": f"Logged in as {current_user.user.username} but trying to login as {username}"}, 400)
56+
else:
57+
cookie_name = self.contest.name + "_login"
58+
cookie = self.get_secure_cookie(cookie_name)
59+
self.json({"login_data": self.request.headers.get(
60+
"X-CMS-Authorization", cookie if cookie is not None else "Already-Logged-In")})
61+
62+
return
63+
4964
password = self.get_argument("password", "")
5065

5166
try:

0 commit comments

Comments
 (0)