diff --git a/CTFd/admin.py b/CTFd/admin.py index 4f0675cc..53ebdf5c 100644 --- a/CTFd/admin.py +++ b/CTFd/admin.py @@ -695,26 +695,27 @@ def create_solve(teamid, chalid): db.session.close() return '1' -@admin.route('/admin/solves///delete', methods=['POST']) +@admin.route('/admin/solves//delete', methods=['POST']) @admins_only -def delete_solve(teamid, chalid): - solve = Solves.query.filter_by(teamid=teamid, chalid=chalid).first() +def delete_solve(keyid): + solve = Solves.query.filter_by(id=keyid).first_or_404() db.session.delete(solve) db.session.commit() db.session.close() return '1' -@admin.route('/admin/wrong_keys///delete', methods=['POST']) +@admin.route('/admin/wrong_keys//delete', methods=['POST']) @admins_only -def delete_wrong_key(teamid, chalid): - wrong_key = WrongKeys.query.filter_by(teamid=teamid, chalid=chalid).first() +def delete_wrong_key(keyid): + wrong_key = WrongKeys.query.filter_by(id=keyid).first_or_404() db.session.delete(wrong_key) db.session.commit() db.session.close() return '1' + @admin.route('/admin/statistics', methods=['GET']) @admins_only def admin_stats(): @@ -755,7 +756,7 @@ def admin_wrong_key(page='1'): page_start = results_per_page * ( page - 1 ) page_end = results_per_page * ( page - 1 ) + results_per_page - wrong_keys = WrongKeys.query.add_columns(WrongKeys.chalid, WrongKeys.flag, WrongKeys.teamid, WrongKeys.date,\ + wrong_keys = WrongKeys.query.add_columns(WrongKeys.id, WrongKeys.chalid, WrongKeys.flag, WrongKeys.teamid, WrongKeys.date,\ Challenges.name.label('chal_name'), Teams.name.label('team_name')).\ join(Challenges).join(Teams).order_by('team_name ASC').slice(page_start, page_end).all() @@ -773,7 +774,7 @@ def admin_correct_key(page='1'): page_start = results_per_page * (page - 1) page_end = results_per_page * (page - 1) + results_per_page - solves = Solves.query.add_columns(Solves.chalid, Solves.teamid, Solves.date, Solves.flag, \ + solves = Solves.query.add_columns(Solves.id, Solves.chalid, Solves.teamid, Solves.date, Solves.flag, \ Challenges.name.label('chal_name'), Teams.name.label('team_name')).\ join(Challenges).join(Teams).order_by('team_name ASC').slice(page_start, page_end).all() diff --git a/CTFd/templates/original/admin/correct_keys.html b/CTFd/templates/original/admin/correct_keys.html index e0662600..3c23563d 100644 --- a/CTFd/templates/original/admin/correct_keys.html +++ b/CTFd/templates/original/admin/correct_keys.html @@ -52,7 +52,7 @@ {{ solve.team_name }} {{ solve.chal_name }} - {{ solve.flag }} + {{ solve.flag }} {% endfor %} @@ -78,7 +78,6 @@ {% block scripts %} - {% endblock %} diff --git a/CTFd/templates/original/admin/team.html b/CTFd/templates/original/admin/team.html index caf55bdd..244ef0d7 100644 --- a/CTFd/templates/original/admin/team.html +++ b/CTFd/templates/original/admin/team.html @@ -161,7 +161,7 @@ {% for solve in solves %} {{ solve.chal.name }} - {{ solve.flag }} + {{ solve.flag }} {{ solve.chal.category }} {{ solve.chal.value }} @@ -208,7 +208,7 @@ {% for wrong_key in wrong_keys %} {{ wrong_key.chal.name }} - {{ wrong_key.flag }} + {{ wrong_key.flag }} @@ -250,10 +250,9 @@ $('.fa-times').click(function () { var elem = $(this).parent().parent(); var type = elem.attr('class'); - var chal = elem.find('.chal').attr('id'); var chal_name = elem.find('.chal').text().trim(); - var team = window.location.pathname.split('/').pop(); var team_name = $("#team-id").text(); + var key_id = elem.find('.flag').attr('id'); if (type == 'chal-solve'){ var title = 'Delete Solve'; @@ -270,7 +269,7 @@ description.find('#confirm-chal-name').text(chal_name); description = description.html() - var action = '{{ request.script_root }}/admin/solves/' + team + '/' + chal + '/delete'; + var action = '{{ request.script_root }}/admin/solves/' + key_id + '/delete'; } else if (type == 'chal-wrong') { var title = 'Delete Wrong Key'; var description = "Are you sure you want to delete " + @@ -285,7 +284,7 @@ description.find('#confirm-chal-name').text(chal_name); description = description.html() - var action = '{{ request.script_root }}/admin/wrong_keys/' + team + '/' + chal + '/delete'; + var action = '{{ request.script_root }}/admin/wrong_keys/' + key_id + '/delete'; } else if (type == 'award-row') { var title = 'Delete Award'; var description = "Are you sure you want to delete the " + diff --git a/CTFd/templates/original/admin/wrong_keys.html b/CTFd/templates/original/admin/wrong_keys.html index f76c1c01..7aca093a 100644 --- a/CTFd/templates/original/admin/wrong_keys.html +++ b/CTFd/templates/original/admin/wrong_keys.html @@ -56,10 +56,10 @@ {% for wrong_key in wrong_keys %} - {{ wrong_key.team_name }} + {{ wrong_key.team_name }} {{ wrong_key.chal_name }} - {{ wrong_key.flag }} + {{ wrong_key.flag }} {% endfor %} @@ -85,7 +85,6 @@ {% block scripts %} - {% endblock %}