Comment peux-je donner les droits d'accès aux mes modules personelles.?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Salut les amis,

J'ai crée deux modules suivants:

1) Proposer un lien web. (Permet la saisie et envoie d'un lien web).
2) Valider un lien web. (Permet la validatin d'un lien web).

J'ai deux type d'utilsiateur:

1) Editeur
2) Valideur

Mes "Editeurs" doivent avoir accès à module "Proposer un lien web".

Mon "Valideur" doit avoir accès aux deux modules "Proposer un lien web" et "Valider un lien web".

J'ai copié le code de hook "_perm" depuis Forms API QuickStart Guide.

Le voila:

function valider_weblink_perm(){
return array('access valider_weblink','create valider_weblink','administer valider_weblink');
}

Est-ce qqun sait qu'est-ce que doit modifier pour atteindre mes objectives.

Pour le moment seulement administrateur a droit d'accès aux ces modules.

Je vous remercie à l'avance les amis.

Salut,

Ton module propose des permissions via le hook_perm().

Ensuite, c'est à toi d'affecter ces permissions aux rôles appropriés (Editeur, Valideur...) via Administrer > Gestion des utilisateurs > Contrôle d'accès. A ce stade, Drupal sait seulement quel rôle possède quelles permissions.

La dernière étape, c'est de faire en sorte que seuls les utilisateurs possédant une permission donnée puissent accéder à ton module. En général, ça se fait dans le hook_menu(), que tu as dû utiliser pour définir l'URL où ton module est accessible, par exemple :

<?php
function valider_menu($may_cache) {
 
$items = array();
  if (
$may_cache) {
   
$items[] = array(
     
'path' => 'url/du/module/valider',
     
'title' => t('Validate Weblink'),
     
'callback' => 'page_validate_weblink',
     
'access' => user_access('access valider_weblink'), // IMPORTANT
     
'type' => MENU_CALLBACK
   
);
  }
  return
$items;
}
?>

La ligne importante, c'est :

<?php
 
'access' => user_access('access valider_weblink'),
?>

qui permet de restreindre l'accès à l'URL de ton module aux utilisateurs possédant la permission 'access valider_weblink'.

Sinon, quelques remarques :

Pourquoi créer des modules pour ça ? Tu aurais pu créer le type de contenu "lien web" avec CCK. Il serait "non publié" par défaut, et seuls les utilisateurs avec la permission appropriée pourrait le passer en "publié" (= le valider).

Enfin, même en ayant besoin de créer ton propre module, tu pourrais t'en sortir avec 1 seul module au lieu de 2 (la création et la validation sont liées, il y a peu de chances que tu les utilises séparément).

Merci pour les remarques Vincent.

Vu que je suis un newbie dans le drupal. Je ne savais pas que c'était possible de faire avec CCK, ou que je pouvais fiare un seul module.

Mais c'est sur que si je fait le même projet maintenant je le ferai différemment.