J'ai besoin d'aide et voici le problème:
Je construis un site en utilisant Drupal 7.
Je dois rendre certaines pages uniquement visibles pour les utilisateurs connectés (chacun ayant son propre nom d'utilisateur / mot de passe), les autres utilisateurs doivent simplement être redirigés ou afficher un message d'erreur. Cette fonctionnalité peut-elle être incluse dans Drupal 7 lui-même ou existe-t-il un module qui le fait (quelque chose de plus simple que les groupes organiques)?
Si vous cherchez à le faire par programme dans un module ou un nœud (avec filtre d'entrée PHP), vous pouvez utiliser user_is_logged_in () pour quelque chose comme ceci:
la source
Bien que le module d'accès au contenu résout bien le problème, il s'agit d'un module supplémentaire et il n'est pas encore stable sur D7.
Une alternative utilisant uniquement des modules couramment utilisés est:
Créez les nœuds mais définissez-les comme non publiés
Créez une vue de nœud, par exemple "contenu limité aux rôles". Affichez le contenu complet du nœud pour répliquer l'affichage standard du nœud /%.
Limitez la vue aux rôles souhaités (par exemple, "Rôle | Utilisateur authentifié")
Définissez le chemin de la vue sur quelque chose comme:
Définissez un filtre contextuel par Nid.
Supprimez le filtre par défaut «le contenu est publié».
Vous aurez maintenant une vue qui fonctionne exactement comme node /%, sauf qu'elle gère également le contenu non publié et restreint par rôle.
la source
Il existe une solution de programmation assez simple, vous pouvez lire le rôle utilisateur (et aussi s'il est anonyme ou enregistré) comme ceci:
vous obtiendrez un tableau avec les rôles de l'utilisateur actuel dans $ roles.
Vous pouvez rediriger cet utilisateur en fonction du rôle avec une certaine logique en utilisant
la source