diff --git a/docs/deletion.rst b/docs/deletion.rst index 99f13cb4..56e947bf 100644 --- a/docs/deletion.rst +++ b/docs/deletion.rst @@ -22,4 +22,4 @@ Add the routing config: # config/routes/nucleos_user.yaml nucleos_user_deletion: - resource: "@NucleosUserBundle/Resources/config/routing/deletion.xml" + resource: "@NucleosUserBundle/Resources/config/routing/deletion.php" diff --git a/docs/index.rst b/docs/index.rst index 61af1734..9e6d9782 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -24,7 +24,6 @@ The following documents are available: doctrine canonicalizer custom_storage_layer - routing security deletion configuration_reference diff --git a/docs/installation.rst b/docs/installation.rst index c0c7581f..793279cd 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -289,8 +289,20 @@ logging in, creating users, etc. .. code-block:: yaml # config/routes/nucleos_user.yaml - nucleos_user: - resource: "@NucleosUserBundle/Resources/config/routing/all.xml" + nucleos_user_security: + resource: "@NucleosUserBundle/Resources/config/routing/security.php" + + nucleos_user_resetting: + resource: "@NucleosUserBundle/Resources/config/routing/resetting.php" + prefix: /resetting + + nucleos_user_change_password: + resource: "@NucleosUserBundle/Resources/config/routing/change_password.php" + prefix: /security + + nucleos_user_deletion: + resource: "@NucleosUserBundle/Resources/config/routing/deletion.php" + prefix: /deletetion Step 7: Update your database schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/routing.rst b/docs/routing.rst deleted file mode 100644 index eae6370a..00000000 --- a/docs/routing.rst +++ /dev/null @@ -1,22 +0,0 @@ -Advanced routing configuration -============================== - -By default, the routing file ``@NucleosUserBundle/Resources/config/routing/all.xml`` imports -all the routing files and enables all the routes. -In the case you want to enable or disable the different available routes, use the -single routing configuration files. - -.. code-block:: yaml - - # config/routes/nucleos_user.yaml - nucleos_user_security: - resource: "@NucleosUserBundle/Resources/config/routing/security.xml" - - nucleos_user_resetting: - resource: "@NucleosUserBundle/Resources/config/routing/resetting.xml" - prefix: /resetting - - nucleos_user_change_password: - resource: "@NucleosUserBundle/Resources/config/routing/change_password.xml" - prefix: /security - diff --git a/src/Resources/config/routing/change_password.php b/src/Resources/config/routing/change_password.php new file mode 100644 index 00000000..f24ff21e --- /dev/null +++ b/src/Resources/config/routing/change_password.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Routing\Loader\Configurator; + +use Nucleos\UserBundle\Action\ChangePasswordAction; + +return static function (RoutingConfigurator $routes): void { + $routes->add('nucleos_user_change_password', '/change-password') + ->controller(ChangePasswordAction::class) + ->methods(['GET', 'POST']) + ; +}; diff --git a/src/Resources/config/routing/deletion.php b/src/Resources/config/routing/deletion.php new file mode 100644 index 00000000..b77568b3 --- /dev/null +++ b/src/Resources/config/routing/deletion.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Routing\Loader\Configurator; + +use Nucleos\UserBundle\Action\AccountDeletionAction; + +return static function (RoutingConfigurator $routes): void { + $routes->add('nucleos_user_delete_account', '/delete') + ->controller(AccountDeletionAction::class) + ->methods(['GET', 'POST']) + ; +}; diff --git a/src/Resources/config/routing/resetting.php b/src/Resources/config/routing/resetting.php new file mode 100644 index 00000000..2810f5d2 --- /dev/null +++ b/src/Resources/config/routing/resetting.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Routing\Loader\Configurator; + +use Nucleos\UserBundle\Action\CheckEmailAction; +use Nucleos\UserBundle\Action\RequestResetAction; +use Nucleos\UserBundle\Action\ResetAction; +use Nucleos\UserBundle\Action\SendEmailAction; +use Symfony\Bundle\FrameworkBundle\Controller\RedirectController; + +return static function (RoutingConfigurator $routes): void { + $routes->add('nucleos_user_resetting_request', '/request') + ->controller(RequestResetAction::class) + ->methods(['GET']) + ; + + $routes->add('nucleos_user_resetting_send_email', '/send-email') + ->controller(SendEmailAction::class) + ->methods(['POST']) + ; + + $routes->add('nucleos_user_resetting_check_email', '/check-email') + ->controller(CheckEmailAction::class) + ->methods(['GET']) + ; + + $routes->add('nucleos_user_resetting_reset', '/reset/{token}') + ->controller(ResetAction::class) + ->methods(['GET', 'POST']) + ; + + $routes->add('nucleos_user_resetting', '/') + ->controller(RedirectController::class) + ->methods(['GET']) + ->defaults([ + 'route' => 'nucleos_user_resetting_request', + 'permanent' => true, + ]) + ; +}; diff --git a/src/Resources/config/routing/security.php b/src/Resources/config/routing/security.php new file mode 100644 index 00000000..72678889 --- /dev/null +++ b/src/Resources/config/routing/security.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Routing\Loader\Configurator; + +use Nucleos\UserBundle\Action\CheckLoginAction; +use Nucleos\UserBundle\Action\LoggedinAction; +use Nucleos\UserBundle\Action\LoginAction; +use Nucleos\UserBundle\Action\LogoutAction; + +return static function (RoutingConfigurator $routes): void { + $routes->add('nucleos_user_security_login', '/login') + ->controller(LoginAction::class) + ->methods(['GET', 'POST']) + ; + + $routes->add('nucleos_user_security_check', '/login_check') + ->controller(CheckLoginAction::class) + ->methods(['POST']) + ; + + $routes->add('nucleos_user_security_loggedin', '/loggedin') + ->controller(LoggedinAction::class) + ->methods(['GET', 'POST']) + ; + + $routes->add('nucleos_user_security_logout', '/logout') + ->controller(LogoutAction::class) + ->methods(['GET', 'POST']) + ; +}; diff --git a/tests/App/AppKernel.php b/tests/App/AppKernel.php index 6a168500..68c08c7c 100644 --- a/tests/App/AppKernel.php +++ b/tests/App/AppKernel.php @@ -57,7 +57,10 @@ public function getProjectDir(): string protected function configureRoutes(RouteCollectionBuilder $routes): void { - $routes->import(__DIR__.'/../../src/Resources/config/routing/all.xml'); + $routes->import(__DIR__.'/../../src/Resources/config/routing/security.php'); + $routes->import(__DIR__.'/../../src/Resources/config/routing/change_password.php'); + $routes->import(__DIR__.'/../../src/Resources/config/routing/resetting.php', '/resetting'); + $routes->import(__DIR__.'/../../src/Resources/config/routing/deletion.php'); } protected function configureContainer(ContainerBuilder $containerBuilder, LoaderInterface $loader): void