2017-05-23 7 views
0

J'ai une vue qui sert un champ de référence d'entité. J'en ai besoin pour: (1) tirer le contenu créé par l'utilisateur actuellement connecté, (2), sauf si l'utilisateur actuellement connecté a un rôle "administrateur", auquel cas tout le contenu est extrait.Vues Drupal 8: Ignorer un filtre contextuel pour le rôle d'administrateur

Actuellement, le filtre contextuel est défini sur "authored by", ce qui fonctionne bien pour requirement (1). Je pense que j'en ai besoin pour contourner le filtre basé sur le rôle. Pour les affichages «en bloc» ou «page», je peux simplement dupliquer un affichage, définir des autorisations en fonction du rôle, et c'est transparent. Mais comme il s'agit d'un champ de référence d'entité, je ne peux spécifier qu'un seul affichage dans les paramètres du champ. Des idées?

Répondre

0

En Drupal 8 j'étais capable de le faire sans aucun module contrib comme les filtres contextuels OU.

  1. ajouter le Authored par le filtre contextuel pour votre type d'entité
  2. choisissent fournir une valeur par défaut ... de l'utilisateur connecté
  3. ci-dessous dans la « lorsque la valeur fournie » section sélectionner « spécifier des critères de validation
  4. pour validateur sélectionnez ID utilisateur
  5. cocher « restreindre l'utilisateur en fonction du rôle »
  6. sélectionnez vos rôles non administrateurs
  7. pour « Mesures à prendre si filte La valeur r ne valide pas "select" affiche tous les résultats "

Si elle est affichée par les non-admins, elle s'affiche uniquement lorsque l'ID utilisateur connecté correspond au propriétaire de l'entité. Pour les administrateurs, il montrera tout.