Les fonction et balise d’autorisations sont très utiles,... quand on sait quel paramètre donner dans les squelettes d’appel !
Pour cela, une solution est d’examiner les sources définissant les fonctions d’autorisation :
- en SPIP v2 stable à ce jour, il faut examiner ./ecrire/inc/autoriser.php
, et ./ecrire/inc/utils.php
- pour les plugins, vous pourrez rechercher les lignes contenant function autorise....
- l’autre solution consiste à en regarder les usages : cherchez les fichiers avec autoriser('
pour commencer..
Récapitulons les paramètres de la fonction :
function autoriser_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL)
API pour une fonction generique d’autorisation :
- $qui est :
- vide (on prend alors visiteur_session)
- un id_auteur (on regarde dans la base)
- qui est traduit par autoriser_dist en un tableau auteur $ qui complet, y compris [restreint]
- $faire est une action (’modifier’, ’publier’...)
- $type est un type d’objet ou nom de table (’article’)
- $id est l’id de l’objet sur lequel on veut agir
- $opt (inutilise pour le moment) = options sous forme de tableau associatif
// (par exemple pour preciser si l’autorisation concerne tel ou tel champ)
La première question porte sur la liste des actions controlées : le paramètre du faire !
On trouve aussi des autorisations génériques (se reporter à l’ordre de recherche des fonctions..) :
-
- autoriser_webmestre
- autoriser_defaut = autoriser_configurer : les Admins non restreints
- autoriser_ecrire : pour autoriser l’accès à l’espace privé
- autoriser_previsualiser
- autoriser_dater
- autoriser_ok et autoriser_niet
- autoriser_voir (dépend du $type )
- pour le traitement des rubriques
- autoriser_rubrique_publierdans = autoriser_rubrique_modifier
- autoriser_rubrique_creerrubriquedans
- autoriser_rubrique_editermots
- pour le traitement des articles
- autoriser_article_modifier :=autoriser_rubrique_publierdans
- autoriser_article_editermots = autoriser_rubrique_editermots
- ensuite la plupart des autorisations vont dépendre aussi du $type
- autoriser_voir (dépend du $type )
- pour les auteurs, on trouvera d’autres fonctionnalités
- autoriser_auteur_modifier : prend divers cas...
- avec une fonction liste_rubriques_auteur (gestion de
spip_auteurs_rubriques
en SPIP2)
On commence une récapitulation des actions :
- dans utils :
- previsualiser :
- debug :
- dans autoriser : - verifier
- voir
- modifier
- publierdans
- editermots