From f3e43d97a6022a61a54c4d97d2166f3521febab0 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sat, 30 Apr 2022 22:05:16 -0400 Subject: [PATCH] Null out some functions in view.js (#2105) * Remove some unused functions from the default provided standard & dynamic challenge `view.js` files --- CHANGELOG.md | 5 ++ CTFd/plugins/challenges/assets/view.js | 57 +++++++++---------- .../plugins/dynamic_challenges/assets/view.js | 57 +++++++++---------- 3 files changed, 59 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 981d750c..134dd85c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,11 @@ - No longer install `python3-dev` in Dockerfile - docker-compose.yml now uses `nginx:stable` as the image for nginx +**Plugins** + +- `CTFd._internal.challenge.render` and `CTFd._internal.challenge.renderer` in `view.js` Challenge type files have been deprecated. Instead Challenge plugins should refer to the `challenge.html` data provided by the API. + - Essentially CTFd is moving to having markdown & HTML rendered by the server. + **Themes** - Create the `core-beta` theme and begin documenting the creation of themes using Vite diff --git a/CTFd/plugins/challenges/assets/view.js b/CTFd/plugins/challenges/assets/view.js index a2fd8261..b03a28e1 100644 --- a/CTFd/plugins/challenges/assets/view.js +++ b/CTFd/plugins/challenges/assets/view.js @@ -1,40 +1,37 @@ -CTFd._internal.challenge.data = undefined +CTFd._internal.challenge.data = undefined; -CTFd._internal.challenge.renderer = CTFd.lib.markdown(); +// TODO: Remove in CTFd v4.0 +CTFd._internal.challenge.renderer = null; +CTFd._internal.challenge.preRender = function() {}; -CTFd._internal.challenge.preRender = function () { } +// TODO: Remove in CTFd v4.0 +CTFd._internal.challenge.render = null; -CTFd._internal.challenge.render = function (markdown) { - return CTFd._internal.challenge.renderer.render(markdown) -} +CTFd._internal.challenge.postRender = function() {}; +CTFd._internal.challenge.submit = function(preview) { + var challenge_id = parseInt(CTFd.lib.$("#challenge-id").val()); + var submission = CTFd.lib.$("#challenge-input").val(); -CTFd._internal.challenge.postRender = function () { } + var body = { + challenge_id: challenge_id, + submission: submission + }; + var params = {}; + if (preview) { + params["preview"] = true; + } - -CTFd._internal.challenge.submit = function (preview) { - var challenge_id = parseInt(CTFd.lib.$('#challenge-id').val()) - var submission = CTFd.lib.$('#challenge-input').val() - - var body = { - 'challenge_id': challenge_id, - 'submission': submission, + return CTFd.api.post_challenge_attempt(params, body).then(function(response) { + if (response.status === 429) { + // User was ratelimited but process response + return response; } - var params = {} - if (preview) { - params['preview'] = true + if (response.status === 403) { + // User is not logged in or CTF is paused. + return response; } - - return CTFd.api.post_challenge_attempt(params, body).then(function (response) { - if (response.status === 429) { - // User was ratelimited but process response - return response - } - if (response.status === 403) { - // User is not logged in or CTF is paused. - return response - } - return response - }) + return response; + }); }; diff --git a/CTFd/plugins/dynamic_challenges/assets/view.js b/CTFd/plugins/dynamic_challenges/assets/view.js index a2fd8261..b03a28e1 100644 --- a/CTFd/plugins/dynamic_challenges/assets/view.js +++ b/CTFd/plugins/dynamic_challenges/assets/view.js @@ -1,40 +1,37 @@ -CTFd._internal.challenge.data = undefined +CTFd._internal.challenge.data = undefined; -CTFd._internal.challenge.renderer = CTFd.lib.markdown(); +// TODO: Remove in CTFd v4.0 +CTFd._internal.challenge.renderer = null; +CTFd._internal.challenge.preRender = function() {}; -CTFd._internal.challenge.preRender = function () { } +// TODO: Remove in CTFd v4.0 +CTFd._internal.challenge.render = null; -CTFd._internal.challenge.render = function (markdown) { - return CTFd._internal.challenge.renderer.render(markdown) -} +CTFd._internal.challenge.postRender = function() {}; +CTFd._internal.challenge.submit = function(preview) { + var challenge_id = parseInt(CTFd.lib.$("#challenge-id").val()); + var submission = CTFd.lib.$("#challenge-input").val(); -CTFd._internal.challenge.postRender = function () { } + var body = { + challenge_id: challenge_id, + submission: submission + }; + var params = {}; + if (preview) { + params["preview"] = true; + } - -CTFd._internal.challenge.submit = function (preview) { - var challenge_id = parseInt(CTFd.lib.$('#challenge-id').val()) - var submission = CTFd.lib.$('#challenge-input').val() - - var body = { - 'challenge_id': challenge_id, - 'submission': submission, + return CTFd.api.post_challenge_attempt(params, body).then(function(response) { + if (response.status === 429) { + // User was ratelimited but process response + return response; } - var params = {} - if (preview) { - params['preview'] = true + if (response.status === 403) { + // User is not logged in or CTF is paused. + return response; } - - return CTFd.api.post_challenge_attempt(params, body).then(function (response) { - if (response.status === 429) { - // User was ratelimited but process response - return response - } - if (response.status === 403) { - // User is not logged in or CTF is paused. - return response - } - return response - }) + return response; + }); };