I want to show anonymous users a "Register" link.
So, in mymodule.menu.yml:
mymodule.userregister: title: 'Register an Account' url: 'internal:/user/register' weight: 10 menu_name: account This adds a register link to the account menu next to the login/logout link-- great! Except it also shows up for authenticated users, who get an "access denied" error if they click it.
I looked in user.links.menu.yml in code/modules/user to try to find something I could use:
user.page: title: 'My account' weight: -10 route_name: user.page menu_name: account user.logout: weight: 10 menu_name: account class: Drupal\user\Plugin\Menu\LoginLogoutMenuLink I also checked user.routing.yml:
user.register: path: '/user/register' defaults: _entity_form: 'user.register' _title: 'Create new account' requirements: _access_user_register: 'TRUE' user.logout: path: '/user/logout' defaults: _controller: '\Drupal\user\Controller\UserController::logout' requirements: _user_is_logged_in: 'TRUE' I'm stumped. How can I make my menu link only show up for anonymous users?
_user_is_logged_in: 'FALSE'_user_is_logged_in: 'FALSE"as a requirement inmymodule.links.menu.ymland clearing caches doesn't hide the link from my admin account when logged in.route_name: user.registerinstead of theurl: ...didn't work?route_name: user.registeris ok, but likeurlstill shows for admins.AccessDeniedSubscriberto redirect authenticated users to their edit pages. I think that is the root cause of the problem.