mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-03-07 05:04:20 +01:00
Compare commits
2 Commits
f6715de330
...
3e724ff1fb
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e724ff1fb | |||
|
e131d3b8d9
|
2
.idea/TijdVoorDeTest.iml
generated
2
.idea/TijdVoorDeTest.iml
generated
@@ -164,6 +164,8 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfonycasts/sass-bundle" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfonycasts/sass-bundle" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/intl-extra" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/intl-extra" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stimulus-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/ux-turbo" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
|||||||
2
.idea/php.xml
generated
2
.idea/php.xml
generated
@@ -199,6 +199,8 @@
|
|||||||
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
|
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
|
||||||
<path value="$PROJECT_DIR$/vendor/twig/html-extra" />
|
<path value="$PROJECT_DIR$/vendor/twig/html-extra" />
|
||||||
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/ux-turbo" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/stimulus-bundle" />
|
||||||
</include_path>
|
</include_path>
|
||||||
</component>
|
</component>
|
||||||
<component name="PhpInterpreters">
|
<component name="PhpInterpreters">
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import './bootstrap.js';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css'
|
import 'bootstrap/dist/css/bootstrap.min.css'
|
||||||
import * as bootstrap from 'bootstrap'
|
import * as bootstrap from 'bootstrap'
|
||||||
|
|
||||||
|
|||||||
5
assets/bootstrap.js
vendored
Normal file
5
assets/bootstrap.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { startStimulusApp } from '@symfony/stimulus-bundle';
|
||||||
|
|
||||||
|
const app = startStimulusApp();
|
||||||
|
// register any custom, 3rd party controllers here
|
||||||
|
// app.register('some_controller_name', SomeImportedController);
|
||||||
15
assets/controllers.json
Normal file
15
assets/controllers.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"controllers": {
|
||||||
|
"@symfony/ux-turbo": {
|
||||||
|
"turbo-core": {
|
||||||
|
"enabled": true,
|
||||||
|
"fetch": "eager"
|
||||||
|
},
|
||||||
|
"mercure-turbo-stream": {
|
||||||
|
"enabled": false,
|
||||||
|
"fetch": "eager"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"entrypoints": []
|
||||||
|
}
|
||||||
79
assets/controllers/csrf_protection_controller.js
Normal file
79
assets/controllers/csrf_protection_controller.js
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
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
|
||||||
|
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';
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import './bootstrap.js';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css'
|
import 'bootstrap/dist/css/bootstrap.min.css'
|
||||||
import * as bootstrap from 'bootstrap'
|
import * as bootstrap from 'bootstrap'
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
"symfony/serializer": "7.2.*",
|
"symfony/serializer": "7.2.*",
|
||||||
"symfony/twig-bundle": "7.2.*",
|
"symfony/twig-bundle": "7.2.*",
|
||||||
"symfony/uid": "7.2.*",
|
"symfony/uid": "7.2.*",
|
||||||
|
"symfony/ux-turbo": "^2.26",
|
||||||
"symfony/yaml": "7.2.*",
|
"symfony/yaml": "7.2.*",
|
||||||
"symfonycasts/sass-bundle": "^0.8.2",
|
"symfonycasts/sass-bundle": "^0.8.2",
|
||||||
"symfonycasts/verify-email-bundle": "^1.17.3",
|
"symfonycasts/verify-email-bundle": "^1.17.3",
|
||||||
|
|||||||
170
composer.lock
generated
170
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "a42d81785aafd03b84dac3f6d813d5c2",
|
"content-hash": "9a4a40083e24d7e3f49ad01ace830440",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "composer/pcre",
|
"name": "composer/pcre",
|
||||||
@@ -6614,6 +6614,75 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-09-25T14:20:29+00:00"
|
"time": "2024-09-25T14:20:29+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/stimulus-bundle",
|
||||||
|
"version": "v2.26.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/stimulus-bundle.git",
|
||||||
|
"reference": "750c770f66b45b40135eb32d753dbd7d84182c92"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/750c770f66b45b40135eb32d753dbd7d84182c92",
|
||||||
|
"reference": "750c770f66b45b40135eb32d753dbd7d84182c92",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1",
|
||||||
|
"symfony/config": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.0|^3.0",
|
||||||
|
"symfony/finder": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/http-kernel": "^5.4|^6.0|^7.0",
|
||||||
|
"twig/twig": "^2.15.3|^3.8"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/asset-mapper": "^6.3|^7.0",
|
||||||
|
"symfony/framework-bundle": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/twig-bundle": "^5.4|^6.0|^7.0",
|
||||||
|
"zenstruck/browser": "^1.4"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\UX\\StimulusBundle\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Integration with your Symfony app & Stimulus!",
|
||||||
|
"keywords": [
|
||||||
|
"symfony-ux"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.26.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-05-23T09:27:30+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/stopwatch",
|
"name": "symfony/stopwatch",
|
||||||
"version": "v7.2.4",
|
"version": "v7.2.4",
|
||||||
@@ -7279,6 +7348,105 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-09-25T14:21:43+00:00"
|
"time": "2024-09-25T14:21:43+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/ux-turbo",
|
||||||
|
"version": "v2.26.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/ux-turbo.git",
|
||||||
|
"reference": "12d9989fb945f2074b41aad4915fc593ecd4ed00"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/12d9989fb945f2074b41aad4915fc593ecd4ed00",
|
||||||
|
"reference": "12d9989fb945f2074b41aad4915fc593ecd4ed00",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1",
|
||||||
|
"symfony/stimulus-bundle": "^2.9.1"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/flex": "<1.13"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dbrekelmans/bdi": "dev-main",
|
||||||
|
"doctrine/doctrine-bundle": "^2.4.3",
|
||||||
|
"doctrine/orm": "^2.8 | 3.0",
|
||||||
|
"php-webdriver/webdriver": "^1.15",
|
||||||
|
"phpstan/phpstan": "^2.1.17",
|
||||||
|
"symfony/asset-mapper": "^6.4|^7.0",
|
||||||
|
"symfony/debug-bundle": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/expression-language": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/form": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/framework-bundle": "^6.4|^7.0",
|
||||||
|
"symfony/mercure-bundle": "^0.3.7",
|
||||||
|
"symfony/messenger": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/panther": "^2.2",
|
||||||
|
"symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/process": "^5.4|6.3.*|^7.0",
|
||||||
|
"symfony/property-access": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/security-core": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/stopwatch": "^5.4|^6.0|^7.0",
|
||||||
|
"symfony/twig-bundle": "^6.4|^7.0",
|
||||||
|
"symfony/ux-twig-component": "^2.21",
|
||||||
|
"symfony/web-profiler-bundle": "^5.4|^6.0|^7.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/ux",
|
||||||
|
"name": "symfony/ux"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\UX\\Turbo\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Kévin Dunglas",
|
||||||
|
"email": "kevin@dunglas.fr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Hotwire Turbo integration for Symfony",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"hotwire",
|
||||||
|
"javascript",
|
||||||
|
"mercure",
|
||||||
|
"symfony-ux",
|
||||||
|
"turbo",
|
||||||
|
"turbo-stream"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/ux-turbo/tree/v2.26.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-05-26T20:34:50+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/ux-twig-component",
|
"name": "symfony/ux-twig-component",
|
||||||
"version": "v2.25.2",
|
"version": "v2.25.2",
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ use Symfony\Bundle\MakerBundle\MakerBundle;
|
|||||||
use Symfony\Bundle\SecurityBundle\SecurityBundle;
|
use Symfony\Bundle\SecurityBundle\SecurityBundle;
|
||||||
use Symfony\Bundle\TwigBundle\TwigBundle;
|
use Symfony\Bundle\TwigBundle\TwigBundle;
|
||||||
use Symfony\Bundle\WebProfilerBundle\WebProfilerBundle;
|
use Symfony\Bundle\WebProfilerBundle\WebProfilerBundle;
|
||||||
|
use Symfony\UX\StimulusBundle\StimulusBundle;
|
||||||
|
use Symfony\UX\Turbo\TurboBundle;
|
||||||
use Symfony\UX\TwigComponent\TwigComponentBundle;
|
use Symfony\UX\TwigComponent\TwigComponentBundle;
|
||||||
use SymfonyCasts\Bundle\VerifyEmail\SymfonyCastsVerifyEmailBundle;
|
use SymfonyCasts\Bundle\VerifyEmail\SymfonyCastsVerifyEmailBundle;
|
||||||
use Symfonycasts\SassBundle\SymfonycastsSassBundle;
|
use Symfonycasts\SassBundle\SymfonycastsSassBundle;
|
||||||
@@ -32,4 +34,6 @@ return [
|
|||||||
SymfonyCastsVerifyEmailBundle::class => ['all' => true],
|
SymfonyCastsVerifyEmailBundle::class => ['all' => true],
|
||||||
SentryBundle::class => ['prod' => true],
|
SentryBundle::class => ['prod' => true],
|
||||||
SymfonycastsSassBundle::class => ['all' => true],
|
SymfonycastsSassBundle::class => ['all' => true],
|
||||||
|
StimulusBundle::class => ['all' => true],
|
||||||
|
TurboBundle::class => ['all' => true],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -32,4 +32,13 @@ return [
|
|||||||
'version' => '5.3.6',
|
'version' => '5.3.6',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
],
|
],
|
||||||
|
'@hotwired/stimulus' => [
|
||||||
|
'version' => '3.2.2',
|
||||||
|
],
|
||||||
|
'@symfony/stimulus-bundle' => [
|
||||||
|
'path' => './vendor/symfony/stimulus-bundle/assets/dist/loader.js',
|
||||||
|
],
|
||||||
|
'@hotwired/turbo' => [
|
||||||
|
'version' => '7.3.0',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ final class EliminationController extends AbstractController
|
|||||||
$candidate = $candidateRepository->getCandidateByHash($elimination->getQuiz()->getSeason(), $candidateHash);
|
$candidate = $candidateRepository->getCandidateByHash($elimination->getQuiz()->getSeason(), $candidateHash);
|
||||||
if (!$candidate instanceof Candidate) {
|
if (!$candidate instanceof Candidate) {
|
||||||
$this->addFlash(FlashType::Warning,
|
$this->addFlash(FlashType::Warning,
|
||||||
t('Cound not find candidate with name %name%', ['%name%' => Base64::base64UrlDecode($candidateHash)])->trans($this->translator)
|
t('Cound not find candidate with name %name%', ['%name%' => Base64::base64UrlDecode($candidateHash)])->trans($this->translator),
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this->redirectToRoute('app_elimination', ['elimination' => $elimination->getId()]);
|
return $this->redirectToRoute('app_elimination', ['elimination' => $elimination->getId()]);
|
||||||
|
|||||||
@@ -110,6 +110,8 @@ final class QuizController extends AbstractController
|
|||||||
->setAnswer($answer)
|
->setAnswer($answer)
|
||||||
->setQuiz($answer->getQuestion()->getQuiz());
|
->setQuiz($answer->getQuestion()->getQuiz());
|
||||||
$givenAnswerRepository->save($givenAnswer);
|
$givenAnswerRepository->save($givenAnswer);
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_quiz_quizpage', ['seasonCode' => $season->getSeasonCode(), 'nameHash' => $nameHash]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$question = $questionRepository->findNextQuestionForCandidate($candidate);
|
$question = $questionRepository->findNextQuestionForCandidate($candidate);
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ final class RegistrationController extends AbstractController
|
|||||||
(new TemplatedEmail())
|
(new TemplatedEmail())
|
||||||
->to((string) $user->getEmail())
|
->to((string) $user->getEmail())
|
||||||
->subject($this->translator->trans('Please Confirm your Email'))
|
->subject($this->translator->trans('Please Confirm your Email'))
|
||||||
->htmlTemplate('backoffice/registration/confirmation_email.html.twig')
|
->htmlTemplate('backoffice/registration/confirmation_email.html.twig'),
|
||||||
);
|
);
|
||||||
|
|
||||||
$response = $security->login($user, 'form_login', 'main');
|
$response = $security->login($user, 'form_login', 'main');
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->setQuestion('Is de Krtek een man of een vrouw?')
|
->setQuestion('Is de Krtek een man of een vrouw?')
|
||||||
->addAnswer(new Answer('Vrouw', true))
|
->addAnswer(new Answer('Vrouw', true))
|
||||||
->addAnswer(new Answer('Man'))
|
->addAnswer(new Answer('Man'))
|
||||||
->setOrdering(1)
|
->setOrdering(1),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -60,7 +60,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Geen', true))
|
->addAnswer(new Answer('Geen', true))
|
||||||
->addAnswer(new Answer('1'))
|
->addAnswer(new Answer('1'))
|
||||||
->addAnswer(new Answer('2'))
|
->addAnswer(new Answer('2'))
|
||||||
->setOrdering(2)
|
->setOrdering(2),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -70,14 +70,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Koningsdag'))
|
->addAnswer(new Answer('Koningsdag'))
|
||||||
->addAnswer(new Answer('Kerst', true))
|
->addAnswer(new Answer('Kerst', true))
|
||||||
->addAnswer(new Answer('Oud en Nieuw'))
|
->addAnswer(new Answer('Oud en Nieuw'))
|
||||||
->setOrdering(3)
|
->setOrdering(3),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Hoe kwam de Krtek naar Kersteren vandaag?')
|
->setQuestion('Hoe kwam de Krtek naar Kersteren vandaag?')
|
||||||
->addAnswer(new Answer('Met het OV', true))
|
->addAnswer(new Answer('Met het OV', true))
|
||||||
->addAnswer(new Answer('Met de auto'))
|
->addAnswer(new Answer('Met de auto'))
|
||||||
->setOrdering(4)
|
->setOrdering(4),
|
||||||
)
|
)
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Met wie keek de Krtek video bij binnenkomst?')
|
->setQuestion('Met wie keek de Krtek video bij binnenkomst?')
|
||||||
@@ -94,7 +94,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Remy'))
|
->addAnswer(new Answer('Remy'))
|
||||||
->addAnswer(new Answer('Robbert'))
|
->addAnswer(new Answer('Robbert'))
|
||||||
->addAnswer(new Answer('Tom', true))
|
->addAnswer(new Answer('Tom', true))
|
||||||
->setOrdering(5)
|
->setOrdering(5),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -107,7 +107,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Probeer ook eens buiten de lijntjes te kleuren', true))
|
->addAnswer(new Answer('Probeer ook eens buiten de lijntjes te kleuren', true))
|
||||||
->addAnswer(new Answer('Ga als je groot bent op groepsreis! '))
|
->addAnswer(new Answer('Ga als je groot bent op groepsreis! '))
|
||||||
->addAnswer(new Answer('Trek minder aan van de mening van anderen, het is oké om anders te zijn.'))
|
->addAnswer(new Answer('Trek minder aan van de mening van anderen, het is oké om anders te zijn.'))
|
||||||
->setOrdering(6)
|
->setOrdering(6),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -118,7 +118,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Pantoffels'))
|
->addAnswer(new Answer('Pantoffels'))
|
||||||
->addAnswer(new Answer('Hakken'))
|
->addAnswer(new Answer('Hakken'))
|
||||||
->addAnswer(new Answer('Geen schoenen, alleen sokken'))
|
->addAnswer(new Answer('Geen schoenen, alleen sokken'))
|
||||||
->setOrdering(7)
|
->setOrdering(7),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -126,14 +126,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Fiets', true))
|
->addAnswer(new Answer('Fiets', true))
|
||||||
->addAnswer(new Answer('Auto'))
|
->addAnswer(new Answer('Auto'))
|
||||||
->addAnswer(new Answer('Trein'))
|
->addAnswer(new Answer('Trein'))
|
||||||
->setOrdering(8)
|
->setOrdering(8),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Heeft de Krtek een eigen auto?')
|
->setQuestion('Heeft de Krtek een eigen auto?')
|
||||||
->addAnswer(new Answer('Ja'))
|
->addAnswer(new Answer('Ja'))
|
||||||
->addAnswer(new Answer('Nee', true))
|
->addAnswer(new Answer('Nee', true))
|
||||||
->setOrdering(9)
|
->setOrdering(9),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -153,14 +153,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Pieter'))
|
->addAnswer(new Answer('Pieter'))
|
||||||
->addAnswer(new Answer('Renée Fokker'))
|
->addAnswer(new Answer('Renée Fokker'))
|
||||||
->addAnswer(new Answer('Sam, Davy', true))
|
->addAnswer(new Answer('Sam, Davy', true))
|
||||||
->setOrdering(10)
|
->setOrdering(10),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Zou de Krtek molboekjes, jokers, vrijstellingen of topito’s uit iemands rugzak stelen om te kunnen winnen?')
|
->setQuestion('Zou de Krtek molboekjes, jokers, vrijstellingen of topito’s uit iemands rugzak stelen om te kunnen winnen?')
|
||||||
->addAnswer(new Answer('Ja'))
|
->addAnswer(new Answer('Ja'))
|
||||||
->addAnswer(new Answer('Nee', true))
|
->addAnswer(new Answer('Nee', true))
|
||||||
->setOrdering(11)
|
->setOrdering(11),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -168,7 +168,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Éénpersoons, losstaand bed'))
|
->addAnswer(new Answer('Éénpersoons, losstaand bed'))
|
||||||
->addAnswer(new Answer('Éénpersoonsbed, tegen een ander bed aan', true))
|
->addAnswer(new Answer('Éénpersoonsbed, tegen een ander bed aan', true))
|
||||||
->addAnswer(new Answer('Tweepersoons bed'))
|
->addAnswer(new Answer('Tweepersoons bed'))
|
||||||
->setOrdering(12)
|
->setOrdering(12),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -177,14 +177,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('6', true))
|
->addAnswer(new Answer('6', true))
|
||||||
->addAnswer(new Answer('7'))
|
->addAnswer(new Answer('7'))
|
||||||
->addAnswer(new Answer('8'))
|
->addAnswer(new Answer('8'))
|
||||||
->setOrdering(13)
|
->setOrdering(13),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Waar zat de Krtek aan tafel bij het diner?')
|
->setQuestion('Waar zat de Krtek aan tafel bij het diner?')
|
||||||
->addAnswer(new Answer('Met de rug naar de accommodatie'))
|
->addAnswer(new Answer('Met de rug naar de accommodatie'))
|
||||||
->addAnswer(new Answer('Met de rug naar de buitenmuur', true))
|
->addAnswer(new Answer('Met de rug naar de buitenmuur', true))
|
||||||
->setOrdering(14)
|
->setOrdering(14),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -202,7 +202,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Remy'))
|
->addAnswer(new Answer('Remy'))
|
||||||
->addAnswer(new Answer('Robbert'))
|
->addAnswer(new Answer('Robbert'))
|
||||||
->addAnswer(new Answer('Tom'))
|
->addAnswer(new Answer('Tom'))
|
||||||
->setOrdering(15)
|
->setOrdering(15),
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->setQuestion('Is de Krtek een man of een vrouw?')
|
->setQuestion('Is de Krtek een man of een vrouw?')
|
||||||
->addAnswer(new Answer('Man'))
|
->addAnswer(new Answer('Man'))
|
||||||
->addAnswer(new Answer('Vrouw', true))
|
->addAnswer(new Answer('Vrouw', true))
|
||||||
->setOrdering(1)
|
->setOrdering(1),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -229,7 +229,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('De Krtek heeft een intolerantie'))
|
->addAnswer(new Answer('De Krtek heeft een intolerantie'))
|
||||||
->addAnswer(new Answer('De Krtek eet geen rundvlees'))
|
->addAnswer(new Answer('De Krtek eet geen rundvlees'))
|
||||||
->addAnswer(new Answer('De Krtek eet geen waterdieren'))
|
->addAnswer(new Answer('De Krtek eet geen waterdieren'))
|
||||||
->setOrdering(2)
|
->setOrdering(2),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -241,7 +241,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Tom'))
|
->addAnswer(new Answer('Tom'))
|
||||||
->addAnswer(new Answer('De huisdieren van de Krtek hebben geen naam'))
|
->addAnswer(new Answer('De huisdieren van de Krtek hebben geen naam'))
|
||||||
->addAnswer(new Answer('De Krtek heeft geen huisdieren', true))
|
->addAnswer(new Answer('De Krtek heeft geen huisdieren', true))
|
||||||
->setOrdering(3)
|
->setOrdering(3),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -252,7 +252,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Melk'))
|
->addAnswer(new Answer('Melk'))
|
||||||
->addAnswer(new Answer('Sap'))
|
->addAnswer(new Answer('Sap'))
|
||||||
->addAnswer(new Answer('Niks'))
|
->addAnswer(new Answer('Niks'))
|
||||||
->setOrdering(4)
|
->setOrdering(4),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -264,7 +264,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Oostenrijk'))
|
->addAnswer(new Answer('Oostenrijk'))
|
||||||
->addAnswer(new Answer('Turkije'))
|
->addAnswer(new Answer('Turkije'))
|
||||||
->addAnswer(new Answer('Zweden', true))
|
->addAnswer(new Answer('Zweden', true))
|
||||||
->setOrdering(5)
|
->setOrdering(5),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -274,7 +274,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Het derde groepje'))
|
->addAnswer(new Answer('Het derde groepje'))
|
||||||
->addAnswer(new Answer('Het vierde groepje'))
|
->addAnswer(new Answer('Het vierde groepje'))
|
||||||
->addAnswer(new Answer('Het vijfde groepje'))
|
->addAnswer(new Answer('Het vijfde groepje'))
|
||||||
->setOrdering(6)
|
->setOrdering(6),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -283,14 +283,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Het universum', true))
|
->addAnswer(new Answer('Het universum', true))
|
||||||
->addAnswer(new Answer('Toeval'))
|
->addAnswer(new Answer('Toeval'))
|
||||||
->addAnswer(new Answer('De Krtek is hindoeïstisch'))
|
->addAnswer(new Answer('De Krtek is hindoeïstisch'))
|
||||||
->setOrdering(7)
|
->setOrdering(7),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('At de Krtek op vrijdagavond heksenkaas tijdens het diner?')
|
->setQuestion('At de Krtek op vrijdagavond heksenkaas tijdens het diner?')
|
||||||
->addAnswer(new Answer('Ja', true))
|
->addAnswer(new Answer('Ja', true))
|
||||||
->addAnswer(new Answer('Nee'))
|
->addAnswer(new Answer('Nee'))
|
||||||
->setOrdering(8)
|
->setOrdering(8),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -299,7 +299,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Tussen 1:00 en 1:59 uur', true))
|
->addAnswer(new Answer('Tussen 1:00 en 1:59 uur', true))
|
||||||
->addAnswer(new Answer('Tussen 2:00 en 2:59 uur'))
|
->addAnswer(new Answer('Tussen 2:00 en 2:59 uur'))
|
||||||
->addAnswer(new Answer('Na 3:00'))
|
->addAnswer(new Answer('Na 3:00'))
|
||||||
->setOrdering(9)
|
->setOrdering(9),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -308,7 +308,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('2'))
|
->addAnswer(new Answer('2'))
|
||||||
->addAnswer(new Answer('3'))
|
->addAnswer(new Answer('3'))
|
||||||
->addAnswer(new Answer('geen', true))
|
->addAnswer(new Answer('geen', true))
|
||||||
->setOrdering(10)
|
->setOrdering(10),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -319,7 +319,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Sesamstraat'))
|
->addAnswer(new Answer('Sesamstraat'))
|
||||||
->addAnswer(new Answer('Spongebob Squarepants'))
|
->addAnswer(new Answer('Spongebob Squarepants'))
|
||||||
->addAnswer(new Answer('Teletubbies'))
|
->addAnswer(new Answer('Teletubbies'))
|
||||||
->setOrdering(11)
|
->setOrdering(11),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -327,7 +327,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('In koffer(s)', true))
|
->addAnswer(new Answer('In koffer(s)', true))
|
||||||
->addAnswer(new Answer('In losse tas(sen)'))
|
->addAnswer(new Answer('In losse tas(sen)'))
|
||||||
->addAnswer(new Answer('In een rugzak'))
|
->addAnswer(new Answer('In een rugzak'))
|
||||||
->setOrdering(12)
|
->setOrdering(12),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -340,14 +340,14 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Servies dat tegen elkaar klettert'))
|
->addAnswer(new Answer('Servies dat tegen elkaar klettert'))
|
||||||
->addAnswer(new Answer('Het geroekoe van een duif', true))
|
->addAnswer(new Answer('Het geroekoe van een duif', true))
|
||||||
->addAnswer(new Answer('Piepschuim'))
|
->addAnswer(new Answer('Piepschuim'))
|
||||||
->setOrdering(13)
|
->setOrdering(13),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
->setQuestion('Wilde de Krtek penningmeester worden?')
|
->setQuestion('Wilde de Krtek penningmeester worden?')
|
||||||
->addAnswer(new Answer('Ja'))
|
->addAnswer(new Answer('Ja'))
|
||||||
->addAnswer(new Answer('Nee', true))
|
->addAnswer(new Answer('Nee', true))
|
||||||
->setOrdering(14)
|
->setOrdering(14),
|
||||||
)
|
)
|
||||||
|
|
||||||
->addQuestion((new Question())
|
->addQuestion((new Question())
|
||||||
@@ -365,7 +365,7 @@ class KrtekFixtures extends Fixture
|
|||||||
->addAnswer(new Answer('Remy'))
|
->addAnswer(new Answer('Remy'))
|
||||||
->addAnswer(new Answer('Robbert'))
|
->addAnswer(new Answer('Robbert'))
|
||||||
->addAnswer(new Answer('Tom'))
|
->addAnswer(new Answer('Tom'))
|
||||||
->setOrdering(15)
|
->setOrdering(15),
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class EmailVerifier
|
|||||||
$verifyEmailRouteName,
|
$verifyEmailRouteName,
|
||||||
(string) $user->getId(),
|
(string) $user->getId(),
|
||||||
(string) $user->getEmail(),
|
(string) $user->getEmail(),
|
||||||
['id' => $user->getId()]
|
['id' => $user->getId()],
|
||||||
);
|
);
|
||||||
|
|
||||||
$context = $email->getContext();
|
$context = $email->getContext();
|
||||||
|
|||||||
33
symfony.lock
33
symfony.lock
@@ -1,4 +1,13 @@
|
|||||||
{
|
{
|
||||||
|
"doctrine/deprecations": {
|
||||||
|
"version": "1.1",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
|
||||||
|
}
|
||||||
|
},
|
||||||
"doctrine/doctrine-bundle": {
|
"doctrine/doctrine-bundle": {
|
||||||
"version": "2.13",
|
"version": "2.13",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
@@ -230,6 +239,21 @@
|
|||||||
"config/routes/security.yaml"
|
"config/routes/security.yaml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"symfony/stimulus-bundle": {
|
||||||
|
"version": "2.26",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "2.20",
|
||||||
|
"ref": "3acc494b566816514a6873a89023a35440b6386d"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"assets/bootstrap.js",
|
||||||
|
"assets/controllers.json",
|
||||||
|
"assets/controllers/csrf_protection_controller.js",
|
||||||
|
"assets/controllers/hello_controller.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
"symfony/translation": {
|
"symfony/translation": {
|
||||||
"version": "7.2",
|
"version": "7.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
@@ -265,6 +289,15 @@
|
|||||||
"ref": "0df5844274d871b37fc3816c57a768ffc60a43a5"
|
"ref": "0df5844274d871b37fc3816c57a768ffc60a43a5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"symfony/ux-turbo": {
|
||||||
|
"version": "2.26",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "2.20",
|
||||||
|
"ref": "c85ff94da66841d7ff087c19cbcd97a2df744ef9"
|
||||||
|
}
|
||||||
|
},
|
||||||
"symfony/ux-twig-component": {
|
"symfony/ux-twig-component": {
|
||||||
"version": "2.22",
|
"version": "2.22",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
|||||||
Reference in New Issue
Block a user