diff --git a/core/modules/user/lib/Drupal/user/ProfileController.php b/core/modules/user/lib/Drupal/user/ProfileController.php new file mode 100644 index 0000000..f141dc0 --- /dev/null +++ b/core/modules/user/lib/Drupal/user/ProfileController.php @@ -0,0 +1,32 @@ +uid) { + return new RedirectResponse(url('user/' . $user->uid, array('absolute' => TRUE))); + } + else { + return drupal_get_form('user_login_form'); + } + } +} diff --git a/core/modules/user/user.module b/core/modules/user/user.module index 322311f..71ac1eb 100644 --- a/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -863,10 +863,7 @@ function user_menu() { $items['user'] = array( 'title' => 'User account', 'title callback' => 'user_menu_title', - 'page callback' => 'user_page', - 'access callback' => TRUE, - 'file' => 'user.pages.inc', - 'weight' => -10, + 'route_name' => 'user_page', 'menu_name' => 'account', ); diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc index 5f0cfab..3dd0d00 100644 --- a/core/modules/user/user.pages.inc +++ b/core/modules/user/user.pages.inc @@ -403,19 +403,3 @@ function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') { } throw new AccessDeniedHttpException(); } - -/** - * Access callback for path /user. - * - * Displays user profile if user is logged in, or login form for anonymous - * users. - */ -function user_page() { - global $user; - if ($user->uid) { - return new RedirectResponse(url('user/' . $user->uid, array('absolute' => TRUE))); - } - else { - return drupal_get_form('user_login_form'); - } -} diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml index 409b033..f634a36 100644 --- a/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -54,3 +54,10 @@ user_role_delete: _form: '\Drupal\user\Form\UserRoleDelete' requirements: _entity_access: user_role.delete + +user_page: + pattern: '/user' + defaults: + _content: '\Drupal\user\ProfileController::userPage' + requirements: + _access: 'TRUE'