Catégories:
Ce message n’est pas écrit dans l’intention de demander de l’aide mais seulement dans le but de faire partager quelques connaissances sur les droits d’accès de Drupal (4.7.x).
- Le premier utilisateur (le numéro 1, qu’importe son nom) créé n’a aucune limitation de droit d’accès.
- Les rôles «anonymous user» et «authenticated user» sont spéciaux, ils sont automatiquement attribués aux utilisateurs.
- Si un utilisateur n’est pas identifié, il obtient le rôle «anonymous user».
- Si un utilisateur est identifié, quels que soient les rôles qui lui sont affectés, il obtiendra également le rôle «authenticated user», mais pas le rôle «anonymous user» !
En conséquence, si vous attribuez un droit à «anonymous user» et à aucun autre rôle, les utilisateurs identifiés n’auront pas ce droit.
Enfin, je tenais juste à signaler un bug du module node, sur node/add, la page affiche tous les contenus et pas seulement ceux que l’utilisateur peut créer. Plus d’information et les patchs (4.7.4, 4.7.5 et 4.7.6) sur http://drupal.org/node/92265.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Concernant ce dernier bug, je ne vois pas en quoi il y a un bug :
node_access('create', $type)fait appel àmodule_invoke(node_get_base($type), 'access', 'create', $type), comme prévu. Par contre, si l’utilisateur a le droit'administer nodes', il voit et peut créer n’importe quel type de node.Pour moi il n’y a pas de bug (en tout cas en regardant le code source).
Damien Tournoud
676
Oui, théoriquement.
Sauf que ça ne fonctionne pas comme ça devrait ! ;-)
J’ai rencontré le problème sur le site que je développe. Le contenu affiche tous les types de noeuds, quel que soit le rôle de l’utilisateur. Par contre le menu système «Créer un contenu» n’affiche que les noeuds que l’utilisateur peut créer (comme on s’y attend).
Zigazou
194
Comment est-ce que tu distingue les droits d’accès par type de noeud ?
Damien Tournoud
676
Je crée mes types de noeuds avec CCK.
Pour chaque type créé, CCK ajoute de nouveaux droits d’accès. Par exemple pour un type «brève», CCK ajoute les droits :
Cela permet de sélectionner quels rôles peuvent créer et modifier quels types de noeuds.
Zigazou
194
J’ai testé sur Drupal 5, cela fonctionne parfaitement.
J’en ai profité pour regarder s’il n’y avait pas un problème du coté de CCK, mais tout m’a l’air correct.
La dernière chose que je vois, c’est que la permission ‘administer nodes’ donne le droit de créer tout type de contenu. Es-tu sûr que tes utilisateurs n’ont pas cette permission ?
Damien Tournoud
676
Absolument certain !
Comme je le disais, le menu système n’affichait que les types de noeuds pouvant être créés par l’utilisateur mais pas la page node/add.
J’ai d’ailleurs essayé de cliquer sur un des noeuds proposés par la page node/add avant patch, et je tombe sur une page indiquant que l’utilisateur n’a pas les droits suffisants.
Pour info, je suis actuellement sous Drupal 4.7.
Zigazou
194
Bizarre, j’ai développé des sites avec des nodes CCK et Drupal 4.7.x et la page node/add affiche uniquement les nodes que l’utilisateur en cours peut créer.
Cela dit, j’ai mis à jour régulièrement mes install de Drupal, peut être que ça vient d’une des premières version (4.7.1 ? 4.7.2 ? …)
Vincent
Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS. Prochaines sessions du 31 mai au 9 juin 2010.
drupalfrance
1500
J’ai peut-être une utilisation particulière de Drupal qui ne doit pas passer.
Entre autres choses je vide le cache menu avant l’affichage de mes pages car les alias d’URL ne sont pas toujours remplacés correctement (en gros j’obtenais des liens node/99999 au lieu d’obtenir l’alias que j’avais défini, mais pas de manière systématique, or mon thème se base dessus).
J’ai commencé Drupal à la 4.7.3 et l’ai upgradé à chaque version.
Zigazou
194
La page de selection des noeuds (accessible par node/add) est en fait gérée directement par le système de menus. Le système de menu n’a peut être pas intégré des changements. Est-ce que se rendre sur la page de menus ne résoudrait pas le problème ?
@Zigazou Je ne vois pas comment le patch proposé dans #92265 pourrait résoudre le problème. Le résout-il vraiment ?
Damien Tournoud
676
Je n’ai pas cherché à approfondir pour tout te dire. Toujours est-il que sans le patch #92265, je vois tous les types de noeuds sur node/add, avec le patch je ne vois que les noeuds que l’utilisateur peut créer.
Tu dis que node/add est gérée directement pas le système de menus ? Pourtant je l’ai vue dans node.module ?
Zigazou
194
En recherchant un peu, ton problème est un duplicate de #44298. Je crois que mon analyse était exacte, tu dois avoir le privilège ‘administer nodes’ activé quelque part.
Damien Tournoud
676
Bien vu, rien à dire, well done :-) Aïe, pas taper, pas taper ! Mea grosse culpa
<?phpfor($i=0;$i<100;$i++) {
echo "Damz est trop fort\n";
}
?>
M’enfin c’est quand même bizarroïde comme schmurtz ;-)
Et encore merci
Zigazou
194
:)
Damien Tournoud
676
Bonjour,
J’ai effacé par erreur les rôles «anonymous user» et «authenticated user» depuis phpMyAdmin car le module LDAP intégration m’avais importé des centaines de rôles dont je voulais me débarasser.
Comment les recréér. Si je le fais à la main en redonnant les noms d’origine, ca ne résoud rien. Qu’ont ils de particulier ?
Merci par avance
millesabords
8