Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > Créer ou surcharger des autorisations

Créer ou surcharger des autorisations

Pour créer une autorisation, il suffit de créer les fonctions adéquates.

  1. function autoriser_documentation_troller_dist($faire, $type, $id, $qui, $opt) {
  2. return false; // aucun troll permis ! non mais !
  3. }

Télécharger

Déclarer cette fonction permet d’utiliser la fonction autoriser('troller','documentation') ou la balise #AUTORISER{troller, documentation}.

Nouvelles fonctions, mais pas n’importe où !

La fonction autoriser(), à son premier appel, charge un pipeline du même nom. Cet appel du pipeline « autoriser » permet de charger les fichiers d’autorisations pour un dossier squelettes ou un plugin.

Exemple

Dans un squelette :
Dans le fichier config/mes_options.php on ajoute l’appel d’une fonction pour nos autorisations :

  1. <?php
  2. $GLOBALS['spip_pipeline']['autoriser'] .= "|mes_autorisations";
  3.  
  4. function mes_autorisations(){
  5. include_spip('inc/mes_autorisations');
  6. }
  7. ?>

Télécharger

Ainsi lorsque le pipeline autoriser est appelé, il charge le fichier inc/mes_autorisations.php. On peut donc créer ce dossier et le fichier, qui contient les fonctions d’autorisations souhaitées, dans son dossier squelettes/.

Dans un plugin :
Pour un plugin, presque de la même façon, il faut déclarer l’utilisation du pipeline dans le plugin.xml :

  1. <pipeline>
  2. <nom>autoriser</nom>
  3. <inclure>inc/prefixePlugin_autoriser.php</inclure>
  4. </pipeline>

Télécharger

Et créer le fichier en question en ajoutant absolument, dans le fichier que le pipeline appelle, la fonction prefixePlugin_autoriser().

  1. <?php
  2. if (!defined("_ECRIRE_INC_VERSION")) return;
  3.  
  4. // fonction pour le pipeline, n'a rien a effectuer
  5. function prefixePlugin_autoriser(){}
  6.  
  7. // declarations d'autorisations
  8. function autoriser_documentation_troller_dist($faire, $type, $id, $qui, $opt) {
  9. return false; // aucun troll permis ! non mais !
  10. }
  11. ?>

Télécharger