Submitted by Lemagus on
Bonjour la communauté Drupal,
Je cherche à faire quelque chose qui à priori devrait être assez simple mais décidément je n'arrive pas à bien comprendre le système de permissions de Drupal.
J'ai créé des utilisateurs qui sont assignés à des roles, et ces roles n'ont les droits de création/édition/effacement que sur certains "content-types".
Lorsque je m'enregistre avec un de ces utilisateurs, je n'ai bien accès qu'à la création des nodes qui lui ont été assignés.
Par contre dans la liste ( celle qu'on quand on clique sur "find content" ) tous les contenus apparaissent, tous sans exception, y compris les contenus pour lesquels l'utilisateur n'a pas de droits.
C'est comme si Drupal donnait une permission de lecture universelle à tous les utilisateurs, peu importe les roles qui leur ont été assignés.
J'ai fait pas mal de recherches sur le web et je n'ai pas trouvé de solution précise.
J'ai pu lire ça et là qu'il était possible de filtrer les noeuds affichés en utilisant le module "administation_views".
Je l'ai donc installé mais je ne trouve pas le bon critère de filtre à utiliser pour n'afficher que les contenus sur lesquels l'utilisateur à les droits de création.
Avez-vous une solution ?
Merci
Gabriel
"Drupal donnait une
Permalien Soumis par vincent59 le 2 Juin, 2016 - 12:49
"Drupal donnait une permission de lecture universelle à tous les utilisateurs", c'est bien ça par défaut.
Les permissions ne gère que les actions de création / modification / suppression.
Pour gérer les accès en lecture, il faut ajouter un module tel que content_access (https://www.drupal.org/project/content_access) ou nodeaccess (https://www.drupal.org/project/nodeaccess)
Merci Vincent,
Permalien Soumis par Lemagus le 3 Juin, 2016 - 18:01
Merci Vincent,
J'ai tenté la solution du module "Content Access".
J'ai bien compris comment gérer les droits mais je ne peux assigner des content-types spécifiques aux rôles que si ce rôle n'a pas déjà le droit "Administer content". Et si je n'active pas le droit "Administer content", l'utilisateur ne peut plus accéder à la liste des contenus, la page renvoie un "access denied".
En clair, si je veux avoir accès aux droits fournis par "content access" je dois désactiver "Administer content" mais ne pas activer ce doit provoque un "access denied" sur la liste des contenus.
Je me mords un peu la queue :-s
Gabriel
Une solution serait peut-être
Permalien Soumis par vincent59 le 4 Juin, 2016 - 19:04
Une solution serait peut-être alors de faire une vue qui liste tous les contenus.
Comme la vue va utiliser le contrôle d'accès, l'utilisateur ne devrait voir que les contenus autorisés.
En quelques sorte ça revient à recoder / refaire la page de gestion de contenu avec Views. En mettant des filtres exposés, l'utilisateur pourra filtrer sur le type de contenu, etc.
Malheureusement ça ne change
Permalien Soumis par Lemagus le 6 Juin, 2016 - 11:07
Malheureusement ça ne change absolument rien :-(
Le module "administration views" a besoin des droits "Access the content overview page" pour fonctionner et ce droit donne accès à tous les contenus, peu importe ce qui est configuré dans les "Node Access".
C'est décidément très très compliqué pour une fonction qui pourrait sembler basique, je me demande même si quelqu'un est déjà arriver à s'en servir :-(
Je ne parlais pas du module
Permalien Soumis par vincent59 le 6 Juin, 2016 - 12:22
Je ne parlais pas du module administration views, mais d'une vue spécifique à créer, mais je n'ai pas testé.
Bon, finalement j'en ai eu
Permalien Soumis par Lemagus le 7 Juin, 2016 - 18:30
Bon, finalement j'en ai eu marre je suis directement allé changer dans le module node.admin pour modifier la query qui affiche les noeuds par user. C'est sale mais j'ai pas trouvé autre chose...
Mais merci pour toutes tes réponses ;-)
Gabriel