From a3dbecdd1803e7e9174aeca38fe0e78e962232c4 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Tue, 16 Mar 2021 15:32:38 -0400 Subject: [PATCH] Link directly to users from the submissions page in teams mode (#1823) * Links directly to users who submitted something in the submissions page if the CTF is in teams mode. * Closes #1813 --- CTFd/admin/submissions.py | 12 +----------- CTFd/constants/config.py | 6 ++++++ CTFd/themes/admin/templates/submissions.html | 15 +++++++++++++-- CTFd/utils/modes/__init__.py | 1 + 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CTFd/admin/submissions.py b/CTFd/admin/submissions.py index 805dd122..273703db 100644 --- a/CTFd/admin/submissions.py +++ b/CTFd/admin/submissions.py @@ -33,17 +33,7 @@ def submissions_listing(submission_type): Model = get_model() submissions = ( - Submissions.query.add_columns( - Submissions.id, - Submissions.type, - Submissions.challenge_id, - Submissions.provided, - Submissions.account_id, - Submissions.date, - Challenges.name.label("challenge_name"), - Model.name.label("account_name"), - ) - .filter_by(**filters_by) + Submissions.query.filter_by(**filters_by) .filter(*filters) .join(Challenges) .join(Model) diff --git a/CTFd/constants/config.py b/CTFd/constants/config.py index 2f08bac9..6d814201 100644 --- a/CTFd/constants/config.py +++ b/CTFd/constants/config.py @@ -13,6 +13,12 @@ class ConfigTypes(str, RawEnum): REGISTRATION_VISIBILITY = "registration_visibility" +@JinjaEnum +class UserModeTypes(str, RawEnum): + USERS = "users" + TEAMS = "teams" + + @JinjaEnum class ChallengeVisibilityTypes(str, RawEnum): PUBLIC = "public" diff --git a/CTFd/themes/admin/templates/submissions.html b/CTFd/themes/admin/templates/submissions.html index 03708a66..d4f969b7 100644 --- a/CTFd/themes/admin/templates/submissions.html +++ b/CTFd/themes/admin/templates/submissions.html @@ -57,6 +57,7 @@
+ {% set mode = Configs.user_mode %} @@ -66,6 +67,9 @@ + {% if mode == UserModeTypes.TEAMS %} + + {% endif %} @@ -84,14 +88,21 @@ + {% if mode == UserModeTypes.TEAMS %} + + {% endif %}
IDUser{{ get_mode_as_word(capitalize=True) }} Challenge Type {{ sub.id }} + + {{ sub.user.name }} + + - {{ sub.account_name }} + {{ sub.account.name }} - {{ sub.challenge_name }} + {{ sub.challenge.name }} diff --git a/CTFd/utils/modes/__init__.py b/CTFd/utils/modes/__init__.py index eace168b..4e0d3f29 100644 --- a/CTFd/utils/modes/__init__.py +++ b/CTFd/utils/modes/__init__.py @@ -3,6 +3,7 @@ from flask import url_for from CTFd.models import Teams, Users from CTFd.utils import get_config +# TODO: Replace these constants with the UserModeTypes enum USERS_MODE = "users" TEAMS_MODE = "teams"