web-dev-qa-db-fra.com

Comment autoriser un itinéraire vers un utilisateur tant qu'il a le bon rôle?

C'est peut-être une question noob mais voici:

J'ai un menu un menu qui contient quatre liens. Cependant, j'ai besoin que l'un des éléments soit accessible uniquement si l'utilisateur actuel a le rôle de "bénéficiaire".

Étant donné que les "rôles" de l'utilisateur sont un tableau contenant toutes sortes de rôles, comment puis-je définir mon itinéraire de manière à ce que l'utilisateur ait le rôle correct?

IE, disons qu'un utilisateur aléatoire a ce qui suit:

$user['roles'] = ['authenticated', 'beneficiary', 'elected'];

et passerait, mais un autre utilisateur aléatoire ayant ce qui suit:

$user['roles'] = ['authenticated', 'elected'];

ne le ferait pas.

Je suis presque sûr qu'il existe un moyen mais je ne trouve pas explicitement ce que je recherche dans la documentation de Drupal

Merci d'avance

4
Jaeger

Je n'ai jamais personnellement essayé cela, mais il semble que dans votre fichier routing.yml, vous pouvez spécifier une autorisation _role sous les exigences:

https://www.drupal.org/docs/8/api/routing-system/structure-of-routes

my_module.your_route:
  path: '/your_menu_path'
  defaults:
    _controller: '\path\to\your\controller'
    _title: 'Menu title'
  requirements:
    _role: 'beneficiary'
10
user72086