Spécifier les droits disponibles

Référence en anglais sur drupal.org : 2 Avril 2010 - 19h39 - http://drupal.org/node/206757


La prochaine fonction à écrire est la fonction des droits d'accès, implémentant la fonction Drupal hook_perm(). C'est là que vous déclarerez les noms des droits de votre module - il ne s'agit pas d'accorder des droits ou de déclarer la portée des droits, il s'agit simplement d'indiquer quels droits sont disponibles pour le module.

Comme pour le hook help de la page précédente, nous implémentons hook_perm() en créant une fonction appelée onthisdate_perm() dans le fichier module onthisdate.module.

Le rôle de cette fonction sera juste de renvoyer une liste énumèrant les noms des droits d'accès utilisés par le module; une fois que vous aurez déclaré les droits dans l'implémentation de hook_perm(), un administrateur pourra définir les rôles ayant ces droits dans la page Administrer » Gestion des utilisateurs » Droits d'accès.

Par exemple, pour créer un droit appelé «access onthisdate content », nous créerons la fonction suivante :

<?php
/**
* Valid permissions for this module
* @return array An array of valid permissions for the onthisdate module
*/
function onthisdate_perm() {
  return array(
'access onthisdate content');
// function onthisdate_perm()
?>

Note pour le débutants : la balise ouvrante <?php n'apparaît qu'une fois dans votre fichier module, au début, et la balise fermante ?> ne doit pas figurer du tout dans votre fichier.

Si vous écrivez un module qui a besoin de gérer les droits plus finement, vous pouvez les ajouter :

<?php
return array('access onthisdate content''administer onthisdate');
?>

Pour ce tutoriel, ne mettez qu'un droit, nous en ajouterons ultérieurement.

Le contenu de la chaîne de caractères qui décrit le droit est libre mais elle doit être unique parmi celles des autres modules. Sinon, une occurrence d'un droit pourra être pris pour un autre. Pour cette raison, la chaîne décrivant le droit devrait comporter le nom du module afin d'éviter des conflits avec d'autres modules. Les conventions de nommage proposent action_verbe_nomdumodule. Utilisez l'exemple suivant comme modèle pour tous les modules que vous développerez :

<?php
function newmodule_perm() {

return array(
'access newmodule''create newmodule''administer newmodule');

// function newmodule_perm
?>

Voir aussi :

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <css>, <php>, <html>, <ccss>, <ccss>, <drupal5>, <drupal6>, <html>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • You may use [view:viewname] tags to display listings of nodes.

Plus d'informations sur les options de formatage

CAPTCHA
Cette question permet d'éviter le spam :
5 + 3 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.