diff --git a/core/modules/user/lib/Drupal/user/Access/RegisterAccessCheck.php b/core/modules/user/lib/Drupal/user/Access/RegisterAccessCheck.php new file mode 100644 index 0000000..f8adae4 --- /dev/null +++ b/core/modules/user/lib/Drupal/user/Access/RegisterAccessCheck.php @@ -0,0 +1,32 @@ +getRequirements()); + } + + /** + * Implements AccessCheckInterface::access(). + */ + public function access(Route $route, Request $request) { + return user_is_anonymous() && (config('user.settings')->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY); + } +} diff --git a/core/modules/user/lib/Drupal/user/UserBundle.php b/core/modules/user/lib/Drupal/user/UserBundle.php new file mode 100644 index 0000000..9ae8936 --- /dev/null +++ b/core/modules/user/lib/Drupal/user/UserBundle.php @@ -0,0 +1,25 @@ +register('access_check.user.register', 'Drupal\user\Access\RegisterAccessCheck') + ->addTag('access_check'); + } +} diff --git a/core/modules/user/lib/Drupal/user/UserRouteController.php b/core/modules/user/lib/Drupal/user/UserRouteController.php index 0cb5a15..cf3b50e 100644 --- a/core/modules/user/lib/Drupal/user/UserRouteController.php +++ b/core/modules/user/lib/Drupal/user/UserRouteController.php @@ -8,7 +8,6 @@ namespace Drupal\user; use Symfony\Component\DependencyInjection\ContainerAware; -use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; /** * Returns responses for User module routes. @@ -22,12 +21,6 @@ class UserRouteController extends ContainerAware { * A renderable array containing the user registration form. */ public function register() { - // @todo Remove once access control is integrated with new routing system: - // http://drupal.org/node/1793520. - if (!user_register_access()) { - throw new AccessDeniedHttpException(); - } - $account = entity_create('user', array()); return entity_get_form($account, 'register'); } diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml index 5e11fab..c3a05d7 100644 --- a/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -2,3 +2,5 @@ user_register: pattern: '/user/register' defaults: _content: '\Drupal\user\UserRouteController::register' + requirements: + _access_user_register: 'TRUE'