Créer ou surcharger des autorisations

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

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

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 :

<?php
$GLOBALS['spip_pipeline']['autoriser'] .= "|mes_autorisations";

function mes_autorisations(){
    include_spip('inc/mes_autorisations');
}
?>

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 :

<pipeline>
    <nom>autoriser</nom>
    <inclure>inc/prefixePlugin_autoriser.php</inclure>
</pipeline>

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

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;

// fonction pour le pipeline, n'a rien a effectuer
function prefixePlugin_autoriser(){}

// declarations d'autorisations
function autoriser_documentation_troller_dist($faire, $type, $id, $qui, $opt) {
    return false; // aucun troll permis ! non mais !
}
?>

Auteur Matthieu Marcillaud Publié le : Mis à jour : 24/11/09

Traductions : English, français