From 7fdc2838912fa17848a3dd49179a8c3e2b2e312c Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:19:15 +0200 Subject: [PATCH 01/11] Remove sensio bundle config --- config/packages/sensio_framework_extra.yaml | 3 --- symfony.lock | 12 ------------ 2 files changed, 15 deletions(-) delete mode 100644 config/packages/sensio_framework_extra.yaml diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml deleted file mode 100644 index 1821ccc..0000000 --- a/config/packages/sensio_framework_extra.yaml +++ /dev/null @@ -1,3 +0,0 @@ -sensio_framework_extra: - router: - annotations: false diff --git a/symfony.lock b/symfony.lock index fc005ae..82274b8 100644 --- a/symfony.lock +++ b/symfony.lock @@ -202,18 +202,6 @@ "ramsey/uuid": { "version": "3.9.3" }, - "sensio/framework-extra-bundle": { - "version": "5.2", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.2", - "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" - }, - "files": [ - "config/packages/sensio_framework_extra.yaml" - ] - }, "squizlabs/php_codesniffer": { "version": "3.0", "recipe": { From bb5d8065b19972cd8ee0f525a494b0941490c2d2 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:20:36 +0200 Subject: [PATCH 02/11] Fix container.build_hash parameter binding --- .php-version | 2 +- composer.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.php-version b/.php-version index 2983cad..cf02201 100644 --- a/.php-version +++ b/.php-version @@ -1 +1 @@ -8.2 +8.3 diff --git a/composer.lock b/composer.lock index fe95579..76ceb68 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "97c9eaa730369fe24020f475b8f37bcf", + "content-hash": "11d9488c10968213c6fe2b095e1432db", "packages": [ { "name": "beberlei/doctrineextensions", @@ -5740,16 +5740,16 @@ }, { "name": "symfony/security-bundle", - "version": "v7.1.0", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "065c532d34bb709ca632f3ceae433a79b7e4d40a" + "reference": "dc4fb2acee6d28bf490ba300a36389182de74d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/065c532d34bb709ca632f3ceae433a79b7e4d40a", - "reference": "065c532d34bb709ca632f3ceae433a79b7e4d40a", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/dc4fb2acee6d28bf490ba300a36389182de74d25", + "reference": "dc4fb2acee6d28bf490ba300a36389182de74d25", "shasum": "" }, "require": { @@ -5826,7 +5826,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v7.1.0" + "source": "https://github.com/symfony/security-bundle/tree/v7.1.1" }, "funding": [ { @@ -5842,7 +5842,7 @@ "type": "tidelift" } ], - "time": "2024-05-24T18:25:25+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/security-core", @@ -8690,7 +8690,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.2", + "php": "^8.3", "ext-ctype": "*", "ext-iconv": "*" }, From 997274b5cb03ded770e85c4cc15d2d9dc7600da6 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:21:23 +0200 Subject: [PATCH 03/11] Upgrade to route attributes --- config/routes/{annotations.yaml => attributes.yaml} | 4 ++-- src/Controller/HomeController.php | 2 +- src/Controller/User/Admin/AddUserController.php | 2 +- src/Controller/User/Admin/DisableUserController.php | 2 +- src/Controller/User/Admin/EditUserController.php | 2 +- src/Controller/User/Admin/EnableUserController.php | 2 +- src/Controller/User/Admin/OverviewController.php | 2 +- src/Controller/User/Admin/RequestConfirmationController.php | 2 +- src/Controller/User/ConfirmController.php | 2 +- src/Controller/User/ForgotPasswordController.php | 2 +- src/Controller/User/LoginController.php | 2 +- src/Controller/User/ProfileController.php | 2 +- src/Controller/User/RegisterController.php | 2 +- src/Controller/User/ResendConfirmationController.php | 2 +- src/Controller/User/ResetPasswordController.php | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) rename config/routes/{annotations.yaml => attributes.yaml} (74%) diff --git a/config/routes/annotations.yaml b/config/routes/attributes.yaml similarity index 74% rename from config/routes/annotations.yaml rename to config/routes/attributes.yaml index fde4b1d..2f6cb53 100644 --- a/config/routes/annotations.yaml +++ b/config/routes/attributes.yaml @@ -1,9 +1,9 @@ controllers: resource: ../../src/Controller/ - type: annotation + type: attribute prefix: nl: '' kernel: resource: ../../src/Kernel.php - type: annotation + type: attribute diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index f8e4a25..bac3f49 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -5,7 +5,7 @@ use App\Controller\User\ProfileController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; class HomeController extends AbstractController { diff --git a/src/Controller/User/Admin/AddUserController.php b/src/Controller/User/Admin/AddUserController.php index 9ab5eb0..aebb9a2 100755 --- a/src/Controller/User/Admin/AddUserController.php +++ b/src/Controller/User/Admin/AddUserController.php @@ -9,7 +9,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class AddUserController extends AbstractController diff --git a/src/Controller/User/Admin/DisableUserController.php b/src/Controller/User/Admin/DisableUserController.php index f9334b3..c1667de 100755 --- a/src/Controller/User/Admin/DisableUserController.php +++ b/src/Controller/User/Admin/DisableUserController.php @@ -7,7 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class DisableUserController extends AbstractController diff --git a/src/Controller/User/Admin/EditUserController.php b/src/Controller/User/Admin/EditUserController.php index 60020af..a0d27fe 100755 --- a/src/Controller/User/Admin/EditUserController.php +++ b/src/Controller/User/Admin/EditUserController.php @@ -10,7 +10,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class EditUserController extends AbstractController diff --git a/src/Controller/User/Admin/EnableUserController.php b/src/Controller/User/Admin/EnableUserController.php index f22858e..639f937 100755 --- a/src/Controller/User/Admin/EnableUserController.php +++ b/src/Controller/User/Admin/EnableUserController.php @@ -7,7 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class EnableUserController extends AbstractController diff --git a/src/Controller/User/Admin/OverviewController.php b/src/Controller/User/Admin/OverviewController.php index 25442d2..af43e9b 100755 --- a/src/Controller/User/Admin/OverviewController.php +++ b/src/Controller/User/Admin/OverviewController.php @@ -10,7 +10,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\MapQueryParameter; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; class OverviewController extends AbstractController { diff --git a/src/Controller/User/Admin/RequestConfirmationController.php b/src/Controller/User/Admin/RequestConfirmationController.php index 1b3ff0b..23e8fa7 100755 --- a/src/Controller/User/Admin/RequestConfirmationController.php +++ b/src/Controller/User/Admin/RequestConfirmationController.php @@ -7,7 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class RequestConfirmationController extends AbstractController diff --git a/src/Controller/User/ConfirmController.php b/src/Controller/User/ConfirmController.php index 4b8e7fe..e238dec 100644 --- a/src/Controller/User/ConfirmController.php +++ b/src/Controller/User/ConfirmController.php @@ -10,7 +10,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ConfirmController extends AbstractController diff --git a/src/Controller/User/ForgotPasswordController.php b/src/Controller/User/ForgotPasswordController.php index 0b4d94b..4f0f078 100644 --- a/src/Controller/User/ForgotPasswordController.php +++ b/src/Controller/User/ForgotPasswordController.php @@ -8,7 +8,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ForgotPasswordController extends AbstractController diff --git a/src/Controller/User/LoginController.php b/src/Controller/User/LoginController.php index 6c83372..440cdd1 100644 --- a/src/Controller/User/LoginController.php +++ b/src/Controller/User/LoginController.php @@ -6,7 +6,7 @@ use App\Form\User\LoginType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; class LoginController extends AbstractController diff --git a/src/Controller/User/ProfileController.php b/src/Controller/User/ProfileController.php index 5adfde5..5501b78 100644 --- a/src/Controller/User/ProfileController.php +++ b/src/Controller/User/ProfileController.php @@ -10,7 +10,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ProfileController extends AbstractController diff --git a/src/Controller/User/RegisterController.php b/src/Controller/User/RegisterController.php index 879416e..0ed0232 100644 --- a/src/Controller/User/RegisterController.php +++ b/src/Controller/User/RegisterController.php @@ -9,7 +9,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class RegisterController extends AbstractController diff --git a/src/Controller/User/ResendConfirmationController.php b/src/Controller/User/ResendConfirmationController.php index 3b0220f..046309b 100755 --- a/src/Controller/User/ResendConfirmationController.php +++ b/src/Controller/User/ResendConfirmationController.php @@ -8,7 +8,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; final class ResendConfirmationController extends AbstractController diff --git a/src/Controller/User/ResetPasswordController.php b/src/Controller/User/ResetPasswordController.php index ba6cfce..0862236 100644 --- a/src/Controller/User/ResetPasswordController.php +++ b/src/Controller/User/ResetPasswordController.php @@ -10,7 +10,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; class ResetPasswordController extends AbstractController From 01dcf36d5783e40d3cc25feed5e575ad304830e3 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:24:32 +0200 Subject: [PATCH 04/11] Fix logout route --- config/packages/security.yaml | 4 +++- config/routes/security.yaml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/packages/security.yaml b/config/packages/security.yaml index e8ffb63..687ad07 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -23,7 +23,9 @@ security: max_attempts: 5 logout: - path: app_logout + path: /logout + + # where to redirect after logout # target: app_any_route remember_me: diff --git a/config/routes/security.yaml b/config/routes/security.yaml index 325b883..3cb5ef0 100644 --- a/config/routes/security.yaml +++ b/config/routes/security.yaml @@ -1,3 +1,3 @@ _security_logout: resource: security.route_loader.logout - type: service \ No newline at end of file + type: service From 63ebbdabefa0d2e13bdcea55887a98103cd35521 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:31:00 +0200 Subject: [PATCH 05/11] Fix phpstan issues --- composer.json | 1 + composer.lock | 74 ++++++++++++++++++++- phpstan.neon.dist | 5 +- src/Security/AuthenticationEntryPoint.php | 6 +- src/Security/CustomAuthenticator.php | 4 +- src/Validator/User/UniqueEmailValidator.php | 2 +- 6 files changed, 85 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 0dc8828..856232d 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,7 @@ "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.4", "friendsoftwig/twigcs": "^6.0", + "phpstan/phpstan-doctrine": "^1.4", "phpstan/phpstan-symfony": "^1.0", "squizlabs/php_codesniffer": "^3.4", "symfony/phpunit-bridge": "^7.1", diff --git a/composer.lock b/composer.lock index 76ceb68..0108743 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "11d9488c10968213c6fe2b095e1432db", + "content-hash": "045f6801d506ef5abf06b7f3aa73de4b", "packages": [ { "name": "beberlei/doctrineextensions", @@ -8409,6 +8409,78 @@ ], "time": "2024-05-31T13:53:37+00:00" }, + { + "name": "phpstan/phpstan-doctrine", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-doctrine.git", + "reference": "dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f", + "reference": "dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.11" + }, + "conflict": { + "doctrine/collections": "<1.0", + "doctrine/common": "<2.7", + "doctrine/mongodb-odm": "<1.2", + "doctrine/orm": "<2.5", + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "cache/array-adapter": "^1.1", + "composer/semver": "^3.3.2", + "cweagans/composer-patches": "^1.7.3", + "doctrine/annotations": "^1.11 || ^2.0", + "doctrine/collections": "^1.6 || ^2.1", + "doctrine/common": "^2.7 || ^3.0", + "doctrine/dbal": "^2.13.8 || ^3.3.3", + "doctrine/lexer": "^2.0 || ^3.0", + "doctrine/mongodb-odm": "^1.3 || ^2.4.3", + "doctrine/orm": "^2.16.0", + "doctrine/persistence": "^2.2.1 || ^3.2", + "gedmo/doctrine-extensions": "^3.8", + "nesbot/carbon": "^2.49", + "nikic/php-parser": "^4.13.2", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^9.6.16", + "ramsey/uuid": "^4.2", + "symfony/cache": "^5.4" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Doctrine extensions for PHPStan", + "support": { + "issues": "https://github.com/phpstan/phpstan-doctrine/issues", + "source": "https://github.com/phpstan/phpstan-doctrine/tree/1.4.3" + }, + "time": "2024-06-08T05:48:50+00:00" + }, { "name": "phpstan/phpstan-symfony", "version": "1.4.3", diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 298286c..adbcdfa 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,5 +1,6 @@ includes: - vendor/phpstan/phpstan-symfony/extension.neon + - vendor/phpstan/phpstan-doctrine/extension.neon services: errorFormatter.junit: class: PHPStan\Command\ErrorFormatter\JUnitErrorFormatter @@ -11,5 +12,5 @@ parameters: paths: - public/ - src/ - excludes_analyse: - - %rootDir%/../../../src/Migrations \ No newline at end of file + excludePaths: + - %rootDir%/../../../src/Migrations diff --git a/src/Security/AuthenticationEntryPoint.php b/src/Security/AuthenticationEntryPoint.php index cbc9d89..d9244b8 100644 --- a/src/Security/AuthenticationEntryPoint.php +++ b/src/Security/AuthenticationEntryPoint.php @@ -5,6 +5,7 @@ use App\Controller\User\LoginController; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface; @@ -18,7 +19,10 @@ public function __construct( public function start(Request $request, AuthenticationException $authException = null): RedirectResponse { - $request->getSession()->getFlashBag()->add('note', 'You have to login in order to access this page.'); + $session = $request->getSession(); + if ($session instanceof FlashBagAwareSessionInterface) { + $session->getFlashBag()->add('note', 'You have to login in order to access this page.'); + } return new RedirectResponse($this->urlGenerator->generate(LoginController::class)); } diff --git a/src/Security/CustomAuthenticator.php b/src/Security/CustomAuthenticator.php index 8c4afa8..ad861c8 100644 --- a/src/Security/CustomAuthenticator.php +++ b/src/Security/CustomAuthenticator.php @@ -9,13 +9,13 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; -use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; +use Symfony\Component\Security\Http\SecurityRequestAttributes; use Symfony\Component\Security\Http\Util\TargetPathTrait; class CustomAuthenticator extends AbstractLoginFormAuthenticator @@ -38,7 +38,7 @@ public function authenticate(Request $request): Passport 'token' => (string) ($formData['_token'] ?? ''), ]; - $request->getSession()->set(Security::LAST_USERNAME, $credentials['email']); + $request->getSession()->set(SecurityRequestAttributes::LAST_USERNAME, $credentials['email']); return new Passport( new UserBadge($credentials['email']), diff --git a/src/Validator/User/UniqueEmailValidator.php b/src/Validator/User/UniqueEmailValidator.php index 1d472d2..06df0d5 100644 --- a/src/Validator/User/UniqueEmailValidator.php +++ b/src/Validator/User/UniqueEmailValidator.php @@ -18,7 +18,7 @@ public function __construct(private readonly UserRepository $userRepository) { } - public function validate($value, Constraint $constraint): void + public function validate(mixed $value, Constraint $constraint): void { if (!$constraint instanceof UniqueEmail) { throw new UnexpectedTypeException($constraint, UniqueEmail::class); From dbcc94b827f7287dd575785bacaa20b80055f369 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:34:20 +0200 Subject: [PATCH 06/11] Phpcs upgrade to PSR12 --- phpcs.xml.dist | 5 +++-- src/Controller/User/ConfirmController.php | 5 ++++- src/Kernel.php | 14 +++++++------- src/Validator/User/UniqueEmailValidator.php | 6 ++++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/phpcs.xml.dist b/phpcs.xml.dist index bce0892..312d17d 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -7,13 +7,14 @@ - + config/ public/ src/ - config/bootstrap.php + config/preload.php public/index.php vendor + assets diff --git a/src/Controller/User/ConfirmController.php b/src/Controller/User/ConfirmController.php index e238dec..50b5de2 100644 --- a/src/Controller/User/ConfirmController.php +++ b/src/Controller/User/ConfirmController.php @@ -50,7 +50,10 @@ public function __invoke( * Therefore the user is redirected to the set password page after confirming. */ if ($user->getPasswordResetToken() !== null) { - return $this->redirectToRoute(ResetPasswordController::class, ['token' => $user->getPasswordResetToken()]); + return $this->redirectToRoute( + ResetPasswordController::class, + ['token' => $user->getPasswordResetToken()] + ); } return $this->redirectToRoute('login'); diff --git a/src/Kernel.php b/src/Kernel.php index 655e796..fc78af2 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -14,24 +14,24 @@ class Kernel extends BaseKernel protected function configureContainer(ContainerConfigurator $container): void { $container->import('../config/{packages}/*.yaml'); - $container->import('../config/{packages}/'.$this->environment.'/*.yaml'); + $container->import('../config/{packages}/' . $this->environment . '/*.yaml'); - if (is_file(\dirname(__DIR__).'/config/services.yaml')) { + if (is_file(\dirname(__DIR__) . '/config/services.yaml')) { $container->import('../config/services.yaml'); - $container->import('../config/{services}_'.$this->environment.'.yaml'); - } elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) { + $container->import('../config/{services}_' . $this->environment . '.yaml'); + } elseif (is_file($path = \dirname(__DIR__) . '/config/services.php')) { (require $path)($container->withPath($path), $this); } } protected function configureRoutes(RoutingConfigurator $routes): void { - $routes->import('../config/{routes}/'.$this->environment.'/*.yaml'); + $routes->import('../config/{routes}/' . $this->environment . '/*.yaml'); $routes->import('../config/{routes}/*.yaml'); - if (is_file(\dirname(__DIR__).'/config/routes.yaml')) { + if (is_file(\dirname(__DIR__) . '/config/routes.yaml')) { $routes->import('../config/routes.yaml'); - } elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) { + } elseif (is_file($path = \dirname(__DIR__) . '/config/routes.php')) { (require $path)($routes->withPath($path), $this); } } diff --git a/src/Validator/User/UniqueEmailValidator.php b/src/Validator/User/UniqueEmailValidator.php index 06df0d5..c02be27 100644 --- a/src/Validator/User/UniqueEmailValidator.php +++ b/src/Validator/User/UniqueEmailValidator.php @@ -40,7 +40,8 @@ public function validate(mixed $value, Constraint $constraint): void * If we're adding a new user (either through the back-end or register page), * throw an error if we can find an existing user with the same email address. */ - if (($formData instanceof CreateUser || + if ( + ($formData instanceof CreateUser || $formData instanceof RegisterUser) && $userWithThatEmail instanceof User ) { @@ -53,7 +54,8 @@ public function validate(mixed $value, Constraint $constraint): void * If we're updating an existing user, only throw an error if we the user we're updating * isn't the one we found in the database. */ - if ($formData instanceof UpdateUser && + if ( + $formData instanceof UpdateUser && $userWithThatEmail instanceof User && $formData->getUser()->getId() !== $userWithThatEmail->getId() ) { From dd96cbef13786dcd73d974a1a6d5276555381148 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:37:43 +0200 Subject: [PATCH 07/11] Install Twig CS Fixer so we can validate the codestyling for Twig files. --- .gitignore | 4 + .twig-cs-fixer.dist.php | 13 +++ composer.json | 4 +- composer.lock | 195 ++++++++++++++++++++++++++++------------ symfony.lock | 12 ++- 5 files changed, 167 insertions(+), 61 deletions(-) create mode 100644 .twig-cs-fixer.dist.php diff --git a/.gitignore b/.gitignore index 2ce2704..14dfac4 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,7 @@ yarn-error.log /.phpcs-cache /phpcs.xml ###< squizlabs/php_codesniffer ### + +###> vincentlanglet/twig-cs-fixer ### +/.twig-cs-fixer.cache +###< vincentlanglet/twig-cs-fixer ### diff --git a/.twig-cs-fixer.dist.php b/.twig-cs-fixer.dist.php new file mode 100644 index 0000000..0e56f5c --- /dev/null +++ b/.twig-cs-fixer.dist.php @@ -0,0 +1,13 @@ +addStandard(new TwigCsFixer\Standard\TwigCsFixer()); +$ruleset->addStandard(new TwigCsFixer\Standard\Symfony()); +$ruleset->addStandard(new TwigCsFixer\Standard\Twig()); + +$config = new TwigCsFixer\Config\Config(); +$config->setRuleset($ruleset); + +return $config; diff --git a/composer.json b/composer.json index 856232d..6784157 100644 --- a/composer.json +++ b/composer.json @@ -28,13 +28,13 @@ }, "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.4", - "friendsoftwig/twigcs": "^6.0", "phpstan/phpstan-doctrine": "^1.4", "phpstan/phpstan-symfony": "^1.0", "squizlabs/php_codesniffer": "^3.4", "symfony/phpunit-bridge": "^7.1", "symfony/stopwatch": "^7.1", - "tijsverkoyen/deployer-sumo": "^2" + "tijsverkoyen/deployer-sumo": "^2", + "vincentlanglet/twig-cs-fixer": "^2.11" }, "config": { "sort-packages": true, diff --git a/composer.lock b/composer.lock index 0108743..3c6c1e5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "045f6801d506ef5abf06b7f3aa73de4b", + "content-hash": "06c435cbb845020932ce3c28f26905cd", "packages": [ { "name": "beberlei/doctrineextensions", @@ -8296,61 +8296,6 @@ ], "time": "2024-05-07T07:16:35+00:00" }, - { - "name": "friendsoftwig/twigcs", - "version": "6.4.0", - "source": { - "type": "git", - "url": "https://github.com/friendsoftwig/twigcs.git", - "reference": "954e1af488d649cf329f35deaedf2b8fe2cf4b56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/friendsoftwig/twigcs/zipball/954e1af488d649cf329f35deaedf2b8fe2cf4b56", - "reference": "954e1af488d649cf329f35deaedf2b8fe2cf4b56", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "symfony/console": "^4.4 || ^5.3 || ^6.0 || ^7.0", - "symfony/filesystem": "^4.4 || ^5.3 || ^6.0 || ^7.0", - "symfony/finder": "^4.4 || ^5.3 || ^6.0 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.6.15", - "symfony/phpunit-bridge": "^7.0.1" - }, - "bin": [ - "bin/twigcs" - ], - "type": "library", - "autoload": { - "psr-4": { - "FriendsOfTwig\\Twigcs\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tristan Maindron", - "email": "tmaindron@gmail.com" - } - ], - "description": "Checkstyle automation for Twig", - "support": { - "issues": "https://github.com/friendsoftwig/twigcs/issues", - "source": "https://github.com/friendsoftwig/twigcs/tree/6.4.0" - }, - "time": "2023-12-05T07:36:35+00:00" - }, { "name": "phpstan/phpstan", "version": "1.11.3", @@ -8754,6 +8699,144 @@ "source": "https://github.com/tijsverkoyen/deployer-sumo/tree/v2.4" }, "time": "2023-12-22T11:58:14+00:00" + }, + { + "name": "vincentlanglet/twig-cs-fixer", + "version": "2.11.0", + "source": { + "type": "git", + "url": "https://github.com/VincentLanglet/Twig-CS-Fixer.git", + "reference": "f0dbee1b0362f86c0e3440ddef0f447f739a326a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/VincentLanglet/Twig-CS-Fixer/zipball/f0dbee1b0362f86c0e3440ddef0f447f739a326a", + "reference": "f0dbee1b0362f86c0e3440ddef0f447f739a326a", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0.0", + "ext-ctype": "*", + "ext-json": "*", + "php": ">=8.0", + "symfony/console": "^5.4.9 || ^6.0 || ^7.0", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", + "symfony/finder": "^5.4 || ^6.0 || ^7.0", + "symfony/string": "^5.4 || ^6.0 || ^7.0", + "twig/twig": "^2.14.0 || ^3.0.5", + "webmozart/assert": "^1.10" + }, + "require-dev": { + "dereuromark/composer-prefer-lowest": "^0.1.10", + "ergebnis/composer-normalize": "^2.29", + "friendsofphp/php-cs-fixer": "^3.13.0", + "icanhazstring/composer-unused": "^0.8.5", + "infection/infection": "^0.26.16 || ^0.27.0", + "maglnet/composer-require-checker": "^3.8 || ^4.3", + "phpstan/phpstan": "^1.9.1", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpstan/phpstan-symfony": "^1.2.16", + "phpstan/phpstan-webmozart-assert": "^1.2.2", + "phpunit/phpunit": "^9.5.26 || ^10.0.9", + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^5.0.0", + "rector/rector": "^1.0.0", + "symfony/process": "^5.4 || ^6.0 || ^7.0", + "symfony/twig-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/ux-twig-component": "^2.2.0", + "twig/cache-extra": "^3.2", + "vimeo/psalm": "^5.2.0" + }, + "bin": [ + "bin/twig-cs-fixer" + ], + "type": "coding-standard", + "autoload": { + "psr-4": { + "TwigCsFixer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Vincent Langlet" + } + ], + "description": "A tool to automatically fix Twig code style", + "homepage": "https://github.com/VincentLanglet/Twig-CS-Fixer", + "support": { + "issues": "https://github.com/VincentLanglet/Twig-CS-Fixer/issues", + "source": "https://github.com/VincentLanglet/Twig-CS-Fixer/tree/2.11.0" + }, + "funding": [ + { + "url": "https://github.com/VincentLanglet", + "type": "github" + } + ], + "time": "2024-06-16T12:30:18+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" } ], "aliases": [], diff --git a/symfony.lock b/symfony.lock index 82274b8..9fd4f5e 100644 --- a/symfony.lock +++ b/symfony.lock @@ -139,9 +139,6 @@ "config/routes/fos_js_routing.yaml" ] }, - "friendsoftwig/twigcs": { - "version": "v5.0.0" - }, "gedmo/doctrine-extensions": { "version": "v2.4.42" }, @@ -651,6 +648,15 @@ "twig/twig": { "version": "v3.3.0" }, + "vincentlanglet/twig-cs-fixer": { + "version": "2.11", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "0.6", + "ref": "e4da12a48e8138479bd24a675321bcfd84950266" + } + }, "willdurand/js-translation-bundle": { "version": "2.0", "recipe": { From 41ec32d1dd396717cf8c746cbfdf6ffb6e16ff88 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:38:58 +0200 Subject: [PATCH 08/11] Lint twig files --- templates/base.html.twig | 2 +- templates/user/admin/edit.html.twig | 6 +++--- templates/user/admin/overview.html.twig | 2 +- templates/user/forgot.html.twig | 2 +- templates/user/register.html.twig | 2 +- templates/user/reset.html.twig | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/templates/base.html.twig b/templates/base.html.twig index 021f694..2e1ad59 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -1 +1 @@ -{% extends '@SumoCodersFrameworkCore/base.html.twig' %} \ No newline at end of file +{% extends '@SumoCodersFrameworkCore/base.html.twig' %} diff --git a/templates/user/admin/edit.html.twig b/templates/user/admin/edit.html.twig index bcfd562..f495acc 100755 --- a/templates/user/admin/edit.html.twig +++ b/templates/user/admin/edit.html.twig @@ -6,18 +6,18 @@ {% block header_navigation %} {% if not user.confirmed %} - + {{ 'Resend confirmation mail'|trans }} {% endif %} {% if user.enabled %} - + {{ 'Disable'|trans }} {% else %} - + {{ 'Enable'|trans }} diff --git a/templates/user/admin/overview.html.twig b/templates/user/admin/overview.html.twig index e951cb4..2f2cc56 100755 --- a/templates/user/admin/overview.html.twig +++ b/templates/user/admin/overview.html.twig @@ -62,7 +62,7 @@ {% endif %} - + diff --git a/templates/user/forgot.html.twig b/templates/user/forgot.html.twig index f3bf8c1..028291c 100644 --- a/templates/user/forgot.html.twig +++ b/templates/user/forgot.html.twig @@ -12,4 +12,4 @@ {{ form_end(form) }} {% endif %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/user/register.html.twig b/templates/user/register.html.twig index 71ea6b5..0ead8e1 100644 --- a/templates/user/register.html.twig +++ b/templates/user/register.html.twig @@ -14,4 +14,4 @@ {{ form_end(form) }} {% endif %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/user/reset.html.twig b/templates/user/reset.html.twig index 6cc7bb0..a5e71c0 100644 --- a/templates/user/reset.html.twig +++ b/templates/user/reset.html.twig @@ -7,4 +7,4 @@ {{ form_end(form) }} -{% endblock %} \ No newline at end of file +{% endblock %} From deb5cc226cb38bd4b26deee623933a29e17871c2 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 12:40:20 +0200 Subject: [PATCH 09/11] Add note to install symfony/rate-limiter --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 758e7d6..a9db018 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ How to use: * symfony/validator * symfony/messenger * symfony/mailer + * symfony/rate-limiter * Check the config folder, mostly: * services.yaml From 8f184514e7a6c33943158bda407753cb5d8b1648 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 16:40:01 +0200 Subject: [PATCH 10/11] Add route names back for use in twig templates --- src/Controller/HomeController.php | 2 +- src/Controller/User/Admin/AddUserController.php | 4 ++-- src/Controller/User/Admin/DisableUserController.php | 2 +- src/Controller/User/Admin/EditUserController.php | 4 ++-- src/Controller/User/Admin/EnableUserController.php | 2 +- src/Controller/User/Admin/OverviewController.php | 4 ++-- src/Controller/User/Admin/RequestConfirmationController.php | 2 +- src/Controller/User/ConfirmController.php | 4 ++-- src/Controller/User/ForgotPasswordController.php | 2 +- src/Controller/User/LoginController.php | 2 +- src/Controller/User/ProfileController.php | 2 +- src/Controller/User/RegisterController.php | 2 +- src/Controller/User/ResendConfirmationController.php | 2 +- src/Controller/User/ResetPasswordController.php | 2 +- src/Security/UserChecker.php | 3 ++- templates/user/admin/edit.html.twig | 6 +++--- templates/user/admin/overview.html.twig | 4 ++-- templates/user/forgot.html.twig | 2 +- templates/user/login.html.twig | 2 +- 19 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index bac3f49..fc63cd1 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -9,7 +9,7 @@ class HomeController extends AbstractController { - #[Route('/')] + #[Route('/', name: 'home')] public function __invoke(): Response { return $this->redirectToRoute(ProfileController::class); diff --git a/src/Controller/User/Admin/AddUserController.php b/src/Controller/User/Admin/AddUserController.php index aebb9a2..d939579 100755 --- a/src/Controller/User/Admin/AddUserController.php +++ b/src/Controller/User/Admin/AddUserController.php @@ -14,8 +14,8 @@ class AddUserController extends AbstractController { - #[Route('/admin/users/add')] - #[Breadcrumb('add', parent:['name' => 'app_user_admin_overview'])] + #[Route('/admin/users/add', name: 'user_add')] + #[Breadcrumb('add', parent:['name' => 'user_overview'])] public function __invoke( Request $request, TranslatorInterface $translator, diff --git a/src/Controller/User/Admin/DisableUserController.php b/src/Controller/User/Admin/DisableUserController.php index c1667de..a598ffa 100755 --- a/src/Controller/User/Admin/DisableUserController.php +++ b/src/Controller/User/Admin/DisableUserController.php @@ -12,7 +12,7 @@ class DisableUserController extends AbstractController { - #[Route('/admin/users/{user}/disable')] + #[Route('/admin/users/{user}/disable', name: 'user_disable')] public function __invoke( User $user, TranslatorInterface $translator, diff --git a/src/Controller/User/Admin/EditUserController.php b/src/Controller/User/Admin/EditUserController.php index a0d27fe..7015909 100755 --- a/src/Controller/User/Admin/EditUserController.php +++ b/src/Controller/User/Admin/EditUserController.php @@ -15,8 +15,8 @@ class EditUserController extends AbstractController { - #[Route('/admin/users/{user}/edit')] - #[Breadcrumb('edit', parent:['name' => 'app_user_admin_overview'])] + #[Route('/admin/users/{user}/edit', name: 'user_edit')] + #[Breadcrumb('edit', parent:['name' => 'user_overview'])] public function __invoke( User $user, Request $request, diff --git a/src/Controller/User/Admin/EnableUserController.php b/src/Controller/User/Admin/EnableUserController.php index 639f937..39bc55b 100755 --- a/src/Controller/User/Admin/EnableUserController.php +++ b/src/Controller/User/Admin/EnableUserController.php @@ -12,7 +12,7 @@ class EnableUserController extends AbstractController { - #[Route('/admin/users/{user}/enable')] + #[Route('/admin/users/{user}/enable', name: 'user_enable')] public function __invoke( User $user, TranslatorInterface $translator, diff --git a/src/Controller/User/Admin/OverviewController.php b/src/Controller/User/Admin/OverviewController.php index af43e9b..23adf5c 100755 --- a/src/Controller/User/Admin/OverviewController.php +++ b/src/Controller/User/Admin/OverviewController.php @@ -14,13 +14,13 @@ class OverviewController extends AbstractController { - #[Route('/admin/users')] + #[Route('/admin/users', name: 'user_overview')] #[Breadcrumb('users')] public function __invoke( Request $request, UserRepository $userRepository, #[MapQueryParameter] - ?int $page = 1 + int $page = 1 ): Response { $form = $this->createForm( FilterType::class, diff --git a/src/Controller/User/Admin/RequestConfirmationController.php b/src/Controller/User/Admin/RequestConfirmationController.php index 23e8fa7..a43626e 100755 --- a/src/Controller/User/Admin/RequestConfirmationController.php +++ b/src/Controller/User/Admin/RequestConfirmationController.php @@ -12,7 +12,7 @@ class RequestConfirmationController extends AbstractController { - #[Route('/admin/users/{user}/request-confirmation')] + #[Route('/admin/users/{user}/request-confirmation', name: 'request_confirmation')] public function __invoke( User $user, TranslatorInterface $translator, diff --git a/src/Controller/User/ConfirmController.php b/src/Controller/User/ConfirmController.php index 50b5de2..d5d8cee 100644 --- a/src/Controller/User/ConfirmController.php +++ b/src/Controller/User/ConfirmController.php @@ -15,7 +15,7 @@ class ConfirmController extends AbstractController { - #[Route('/confirm/{token}')] + #[Route('/confirm/{token}', name: 'confirm')] public function __invoke( string $token, UserRepository $userRepository, @@ -56,7 +56,7 @@ public function __invoke( ); } - return $this->redirectToRoute('login'); + return $this->redirectToRoute(LoginController::class); } return $this->render('user/confirm.html.twig', [ diff --git a/src/Controller/User/ForgotPasswordController.php b/src/Controller/User/ForgotPasswordController.php index 4f0f078..cd7b619 100644 --- a/src/Controller/User/ForgotPasswordController.php +++ b/src/Controller/User/ForgotPasswordController.php @@ -13,7 +13,7 @@ class ForgotPasswordController extends AbstractController { - #[Route('/password-reset')] + #[Route('/password-reset', name: 'forgot_password')] public function __invoke( Request $request, TranslatorInterface $translator, diff --git a/src/Controller/User/LoginController.php b/src/Controller/User/LoginController.php index 440cdd1..2d234ff 100644 --- a/src/Controller/User/LoginController.php +++ b/src/Controller/User/LoginController.php @@ -11,7 +11,7 @@ class LoginController extends AbstractController { - #[Route('/login')] + #[Route('/login', name: 'login')] public function __invoke( AuthenticationUtils $authenticationUtils ): Response { diff --git a/src/Controller/User/ProfileController.php b/src/Controller/User/ProfileController.php index 5501b78..5a78d16 100644 --- a/src/Controller/User/ProfileController.php +++ b/src/Controller/User/ProfileController.php @@ -15,7 +15,7 @@ class ProfileController extends AbstractController { - #[Route('/profile')] + #[Route('/profile', name: 'profile')] #[Breadcrumb('profile')] public function __invoke( Request $request, diff --git a/src/Controller/User/RegisterController.php b/src/Controller/User/RegisterController.php index 0ed0232..1189bf5 100644 --- a/src/Controller/User/RegisterController.php +++ b/src/Controller/User/RegisterController.php @@ -14,7 +14,7 @@ class RegisterController extends AbstractController { - #[Route('/register')] + #[Route('/register', name: 'register')] public function __invoke( Request $request, SessionInterface $session, diff --git a/src/Controller/User/ResendConfirmationController.php b/src/Controller/User/ResendConfirmationController.php index 046309b..384d52c 100755 --- a/src/Controller/User/ResendConfirmationController.php +++ b/src/Controller/User/ResendConfirmationController.php @@ -13,7 +13,7 @@ final class ResendConfirmationController extends AbstractController { - #[Route('/resend-confirmation/{token}')] + #[Route('/resend-confirmation/{token}', name: 'resend_confirmation')] public function __invoke( string $token, UserRepository $userRepository, diff --git a/src/Controller/User/ResetPasswordController.php b/src/Controller/User/ResetPasswordController.php index 0862236..a7c373b 100644 --- a/src/Controller/User/ResetPasswordController.php +++ b/src/Controller/User/ResetPasswordController.php @@ -15,7 +15,7 @@ class ResetPasswordController extends AbstractController { - #[Route('/password-reset/{token}')] + #[Route('/password-reset/{token}', name: 'reset_password')] public function __invoke( string $token, Request $request, diff --git a/src/Security/UserChecker.php b/src/Security/UserChecker.php index 1d4d251..766cea1 100644 --- a/src/Security/UserChecker.php +++ b/src/Security/UserChecker.php @@ -2,6 +2,7 @@ namespace App\Security; +use App\Controller\User\Admin\RequestConfirmationController; use App\Entity\User\User; use App\Repository\User\UserRepository; use App\Security\Exception\UnconfirmedAccountException; @@ -32,7 +33,7 @@ public function checkPreAuth(UserInterface $user): void 'Account has not been confirmed. Resend confirmation mail', [ '%requestConfirmationUrl%' => $this->router->generate( - 'app_user_resend_confirmation', + RequestConfirmationController::class, [ 'token' => $user->getConfirmationToken(), ] diff --git a/templates/user/admin/edit.html.twig b/templates/user/admin/edit.html.twig index f495acc..63191c2 100755 --- a/templates/user/admin/edit.html.twig +++ b/templates/user/admin/edit.html.twig @@ -6,18 +6,18 @@ {% block header_navigation %} {% if not user.confirmed %} - + {{ 'Resend confirmation mail'|trans }} {% endif %} {% if user.enabled %} - + {{ 'Disable'|trans }} {% else %} - + {{ 'Enable'|trans }} diff --git a/templates/user/admin/overview.html.twig b/templates/user/admin/overview.html.twig index 2f2cc56..ae14a47 100755 --- a/templates/user/admin/overview.html.twig +++ b/templates/user/admin/overview.html.twig @@ -5,7 +5,7 @@ {% endblock %} {% block header_navigation %} - + {{ 'Add a new user'|trans|capitalize }} @@ -62,7 +62,7 @@ {% endif %} - + diff --git a/templates/user/forgot.html.twig b/templates/user/forgot.html.twig index 028291c..8d99a74 100644 --- a/templates/user/forgot.html.twig +++ b/templates/user/forgot.html.twig @@ -3,7 +3,7 @@ {% block main %} {% if form.vars.submitted and form.vars.valid %}

{{ 'Check your email for a link to reset your password. If it doesn’t appear within a few minutes, check your spam folder.'|trans }}

- {{ 'Return to sign in'|trans }} + {{ 'Return to sign in'|trans }} {% else %}

{{ 'Enter your user account\'s verified email address and we will send you a password reset link.'|trans }}

diff --git a/templates/user/login.html.twig b/templates/user/login.html.twig index 666b6bf..ec9a224 100644 --- a/templates/user/login.html.twig +++ b/templates/user/login.html.twig @@ -23,5 +23,5 @@ {{ form_end(form) }} -

{{ 'New to x?'|trans }} {{ 'Sign up'|trans }}

+

{{ 'New to x?'|trans }} {{ 'Sign up'|trans }}

{% endblock %} From 768237ff3ae5d506ce486ac34b04ea36078d2786 Mon Sep 17 00:00:00 2001 From: Abraham Date: Fri, 21 Jun 2024 17:52:31 +0200 Subject: [PATCH 11/11] Source files should not have the executable bit --- src/Controller/User/Admin/AddUserController.php | 0 src/Controller/User/Admin/DisableUserController.php | 0 src/Controller/User/Admin/EditUserController.php | 0 src/Controller/User/Admin/EnableUserController.php | 0 src/Controller/User/Admin/OverviewController.php | 0 src/Controller/User/Admin/RequestConfirmationController.php | 0 src/Controller/User/ResendConfirmationController.php | 0 src/Form/User/Admin/ChangePasswordType.php | 0 src/Form/User/Admin/UserType.php | 0 src/Security/Exception/UnconfirmedAccountException.php | 0 templates/user/admin/add.html.twig | 0 templates/user/admin/edit.html.twig | 0 templates/user/admin/overview.html.twig | 0 13 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/Controller/User/Admin/AddUserController.php mode change 100755 => 100644 src/Controller/User/Admin/DisableUserController.php mode change 100755 => 100644 src/Controller/User/Admin/EditUserController.php mode change 100755 => 100644 src/Controller/User/Admin/EnableUserController.php mode change 100755 => 100644 src/Controller/User/Admin/OverviewController.php mode change 100755 => 100644 src/Controller/User/Admin/RequestConfirmationController.php mode change 100755 => 100644 src/Controller/User/ResendConfirmationController.php mode change 100755 => 100644 src/Form/User/Admin/ChangePasswordType.php mode change 100755 => 100644 src/Form/User/Admin/UserType.php mode change 100755 => 100644 src/Security/Exception/UnconfirmedAccountException.php mode change 100755 => 100644 templates/user/admin/add.html.twig mode change 100755 => 100644 templates/user/admin/edit.html.twig mode change 100755 => 100644 templates/user/admin/overview.html.twig diff --git a/src/Controller/User/Admin/AddUserController.php b/src/Controller/User/Admin/AddUserController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/Admin/DisableUserController.php b/src/Controller/User/Admin/DisableUserController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/Admin/EditUserController.php b/src/Controller/User/Admin/EditUserController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/Admin/EnableUserController.php b/src/Controller/User/Admin/EnableUserController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/Admin/OverviewController.php b/src/Controller/User/Admin/OverviewController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/Admin/RequestConfirmationController.php b/src/Controller/User/Admin/RequestConfirmationController.php old mode 100755 new mode 100644 diff --git a/src/Controller/User/ResendConfirmationController.php b/src/Controller/User/ResendConfirmationController.php old mode 100755 new mode 100644 diff --git a/src/Form/User/Admin/ChangePasswordType.php b/src/Form/User/Admin/ChangePasswordType.php old mode 100755 new mode 100644 diff --git a/src/Form/User/Admin/UserType.php b/src/Form/User/Admin/UserType.php old mode 100755 new mode 100644 diff --git a/src/Security/Exception/UnconfirmedAccountException.php b/src/Security/Exception/UnconfirmedAccountException.php old mode 100755 new mode 100644 diff --git a/templates/user/admin/add.html.twig b/templates/user/admin/add.html.twig old mode 100755 new mode 100644 diff --git a/templates/user/admin/edit.html.twig b/templates/user/admin/edit.html.twig old mode 100755 new mode 100644 diff --git a/templates/user/admin/overview.html.twig b/templates/user/admin/overview.html.twig old mode 100755 new mode 100644