SPIP dispose d’une fonction extensible autoriser() permettant de vérifier des autorisations. Cette fonction admet 5 arguments. Seul le premier est indispensable, les autres étant optionnels.
autoriser($faire, $type, $id, $qui, $opt);
La fonction renvoie true ou false en fonction de l’autorisation demandée et de l’auteur connecté (ou l’auteur demandé). Voici à quoi correspondent les différents arguments :
-
$fairecorrespond à l’action demandée. Par exemple « modifier » ou « voir », -
$typesert à donner généralement le type d’objet, par exemple « auteur » ou « article », Si toutefois$typecommence par un caractère ’_’ (underscore), alors il ne s’agit pas un nom d’objet éditorial et la fonction objet_type ne lui sera pas appliquée. -
$idsert à donner l’identifiant de l’objet demandé, par exemple « 8 », -
$quipermet de demander une autorisation pour un auteur particulier. Non renseigné, ce sera l’auteur connecté. On peut donner comme argument à$quiunid_auteur. Cette variable sera remplie avec toutes les informations, sous forme de tableau, concernant l’auteur désigné, -
$optest un tableau d’option, généralement vide. Lorsqu’une autorisation nécessite de passer des arguments supplémentaires, ils sont mis dans ce tableau.
Dans $qui on trouve notamment le statut de l’auteur. Ce statut peut avoir les valeurs suivantes :
| Administrateur | Rédacteur | Visiteur | Poubelle |
|---|---|---|---|
| 0minirezo | 1comite | 6forum | 5poubelle |
Attention :
– Pour le choix de la fonction d’autorisation spécialisée à appeler, les underscore sont supprimés à l’intérieur de $type. Ainsi, pour le type d’objet livre_art c’est une fonction autoriser_livreart qui pourra être appelée.
– Si toutefois le $type commence par un caractère ’_’ (underscore), alors il ne s’agit pas un nom d’objet éditorial et la fonction objet_type ne lui sera pas appliquée.