From a515be554f70b023ec0b876175e4e2de2c0780ec Mon Sep 17 00:00:00 2001 From: MLeveque Date: Sun, 1 Mar 2026 17:59:32 +0100 Subject: [PATCH] =?UTF-8?q?refactor:=20suppression=20des=20fichiers,=20tem?= =?UTF-8?q?plates=20et=20configurations=20inutilis=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/csrf_protection_controller.js | 81 ------------------- assets/controllers/hello_controller.js | 16 ---- compose.override.yaml | 18 ----- src/Controller/HomeController.php | 2 +- .../TwigBundles/Exception/error.html.twig | 0 .../TwigBundles/Exception/error404.html.twig | 0 .../TwigBundles/Exception/error500.html.twig | 1 + templates/hello.html.twig | 2 - templates/home/hello.html.twig | 0 9 files changed, 2 insertions(+), 118 deletions(-) delete mode 100644 assets/controllers/csrf_protection_controller.js delete mode 100644 assets/controllers/hello_controller.js delete mode 100644 compose.override.yaml create mode 100644 templates/bundles/TwigBundles/Exception/error.html.twig create mode 100644 templates/bundles/TwigBundles/Exception/error404.html.twig create mode 100644 templates/bundles/TwigBundles/Exception/error500.html.twig delete mode 100644 templates/hello.html.twig create mode 100644 templates/home/hello.html.twig diff --git a/assets/controllers/csrf_protection_controller.js b/assets/controllers/csrf_protection_controller.js deleted file mode 100644 index 511fffa..0000000 --- a/assets/controllers/csrf_protection_controller.js +++ /dev/null @@ -1,81 +0,0 @@ -const nameCheck = /^[-_a-zA-Z0-9]{4,22}$/; -const tokenCheck = /^[-_/+a-zA-Z0-9]{24,}$/; - -// Generate and double-submit a CSRF token in a form field and a cookie, as defined by Symfony's SameOriginCsrfTokenManager -// Use `form.requestSubmit()` to ensure that the submit event is triggered. Using `form.submit()` will not trigger the event -// and thus this event-listener will not be executed. -document.addEventListener('submit', function (event) { - generateCsrfToken(event.target); -}, true); - -// When @hotwired/turbo handles form submissions, send the CSRF token in a header in addition to a cookie -// The `framework.csrf_protection.check_header` config option needs to be enabled for the header to be checked -document.addEventListener('turbo:submit-start', function (event) { - const h = generateCsrfHeaders(event.detail.formSubmission.formElement); - Object.keys(h).map(function (k) { - event.detail.formSubmission.fetchRequest.headers[k] = h[k]; - }); -}); - -// When @hotwired/turbo handles form submissions, remove the CSRF cookie once a form has been submitted -document.addEventListener('turbo:submit-end', function (event) { - removeCsrfToken(event.detail.formSubmission.formElement); -}); - -export function generateCsrfToken (formElement) { - const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]'); - - if (!csrfField) { - return; - } - - let csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value'); - let csrfToken = csrfField.value; - - if (!csrfCookie && nameCheck.test(csrfToken)) { - csrfField.setAttribute('data-csrf-protection-cookie-value', csrfCookie = csrfToken); - csrfField.defaultValue = csrfToken = btoa(String.fromCharCode.apply(null, (window.crypto || window.msCrypto).getRandomValues(new Uint8Array(18)))); - } - csrfField.dispatchEvent(new Event('change', { bubbles: true })); - - if (csrfCookie && tokenCheck.test(csrfToken)) { - const cookie = csrfCookie + '_' + csrfToken + '=' + csrfCookie + '; path=/; samesite=strict'; - document.cookie = window.location.protocol === 'https:' ? '__Host-' + cookie + '; secure' : cookie; - } -} - -export function generateCsrfHeaders (formElement) { - const headers = {}; - const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]'); - - if (!csrfField) { - return headers; - } - - const csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value'); - - if (tokenCheck.test(csrfField.value) && nameCheck.test(csrfCookie)) { - headers[csrfCookie] = csrfField.value; - } - - return headers; -} - -export function removeCsrfToken (formElement) { - const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]'); - - if (!csrfField) { - return; - } - - const csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value'); - - if (tokenCheck.test(csrfField.value) && nameCheck.test(csrfCookie)) { - const cookie = csrfCookie + '_' + csrfField.value + '=0; path=/; samesite=strict; max-age=0'; - - document.cookie = window.location.protocol === 'https:' ? '__Host-' + cookie + '; secure' : cookie; - } -} - -/* stimulusFetch: 'lazy' */ -export default 'csrf-protection-controller'; diff --git a/assets/controllers/hello_controller.js b/assets/controllers/hello_controller.js deleted file mode 100644 index e847027..0000000 --- a/assets/controllers/hello_controller.js +++ /dev/null @@ -1,16 +0,0 @@ -import { Controller } from '@hotwired/stimulus'; - -/* - * This is an example Stimulus controller! - * - * Any element with a data-controller="hello" attribute will cause - * this controller to be executed. The name "hello" comes from the filename: - * hello_controller.js -> "hello" - * - * Delete this file or adapt it for your use! - */ -export default class extends Controller { - connect() { - this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js'; - } -} diff --git a/compose.override.yaml b/compose.override.yaml deleted file mode 100644 index 8dc54de..0000000 --- a/compose.override.yaml +++ /dev/null @@ -1,18 +0,0 @@ - -services: -###> doctrine/doctrine-bundle ### - database: - ports: - - "5432" -###< doctrine/doctrine-bundle ### - -###> symfony/mailer ### - mailer: - image: axllent/mailpit - ports: - - "1025" - - "8025" - environment: - MP_SMTP_AUTH_ACCEPT_ANY: 1 - MP_SMTP_AUTH_ALLOW_INSECURE: 1 -###< symfony/mailer ### diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index e544797..94a7c24 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -11,7 +11,7 @@ class HomeController extends AbstractController #[Route('/hello')] public function hello(): Response { - return $this->render('hello.html.twig', [ + return $this->render('home/hello.html.twig', [ 'name' => 'Melvin' ]); } diff --git a/templates/bundles/TwigBundles/Exception/error.html.twig b/templates/bundles/TwigBundles/Exception/error.html.twig new file mode 100644 index 0000000..e69de29 diff --git a/templates/bundles/TwigBundles/Exception/error404.html.twig b/templates/bundles/TwigBundles/Exception/error404.html.twig new file mode 100644 index 0000000..e69de29 diff --git a/templates/bundles/TwigBundles/Exception/error500.html.twig b/templates/bundles/TwigBundles/Exception/error500.html.twig new file mode 100644 index 0000000..031131d --- /dev/null +++ b/templates/bundles/TwigBundles/Exception/error500.html.twig @@ -0,0 +1 @@ +error404.html.twig \ No newline at end of file diff --git a/templates/hello.html.twig b/templates/hello.html.twig deleted file mode 100644 index bf1df76..0000000 --- a/templates/hello.html.twig +++ /dev/null @@ -1,2 +0,0 @@ -{# templates/hellp.html.twig #} -

Hello ! {{ name }}

\ No newline at end of file diff --git a/templates/home/hello.html.twig b/templates/home/hello.html.twig new file mode 100644 index 0000000..e69de29