Carnet Wiki

AutorisationsDansSpip

Version 10 — Mars 2012 — Richie

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’...)  : insensible à la casse , indiquée sans quote pour # AUTORISER
  • $ type $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

A partir de là, cela devient plus clair : on va pouvoir commencer à jouer avec les autorisations ;
(je n’ai pas repris ici la chaine de recherche en cascade des droits d’autorisations... mais je la connaitrai bientot par coeur... : donc je l’ecrirai !!)
mais il reste encore deux sujets à compléter...
-  traduite en autorisations le #SESSION{auteur} ou #SESSION{statut}
-  identifier facilement les admins restreints (quel est le paramétrage de leur autorisation), récupérer plus facilement leurs rubriques autorisées => ressortir le $qui de autoriser_dist ?
et restreindre pareillement des auteurs redacteurs et pas seulement des admins, à une liste de rubriques (mais en SPIP 3, la table change de formats....) : à noter (Spip 2.1.12) la conversion d’un Admin restreint en redacteur ne supprime pas les restrictions dans la table auteurs_rubriques => à tester pour usage en autorisations..

Voire les remarques sur SPIP.net : la rubrique 60. Statuts et Autorisations (vide) et les articles #Autoriser et #Session

Retour à la version courante

Toutes les versions