Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > Donner une autorisation exceptionnelle

Donner une autorisation exceptionnelle

Il arrive qu’on ait besoin de faire une action qui sera soumise à autorisation pour un auteur qui normalement n’en a pas le droit. Cela peut se produire, par exemple, dans le cas d’une action programmée qui sera alors exécutée anonymement.

Dans ce cas, il existe un mécanisme via la fonction autoriser_exception qui donne une autorisation exceptionnelle, le temps de réaliser l’action concernée.

  1. include_spip('inc/autoriser');
  2. // donner une autorisation exceptionnelle temporaire
  3. autoriser_exception('modifier', 'article', $id_article);
  4. // réaliser l'action désirée
  5. include_spip('action/editer_objet');
  6. objet_modifier('article', $id_article, array('titre' => 'Nouveau titre'));
  7. // retirer l'autorisation exceptionnelle
  8. autoriser_exception('modifier', 'article', $id_article, false);

Télécharger

La fonction autoriser_exception($faire, $type, $id, $autoriser) prend 4 arguments :

  • $faire avec la même signification que pour autoriser()
  • $type avec la même signification que pour autoriser()
  • $id avec la même signification que pour autoriser()
  • $autoriser qui est un booléen et indique si l’autorisation exceptionnelle est accordée ou non :
    • Lorsque $autoriser vaut « true » ou n’est pas fourni, on accorde une autorisation exceptionnelle : tous les appels suivant à autoriser() avec les mêmes arguments $faire, $type et $id renverront true
    • Lorsque $autoriser vaut « false » cela signifie que l’autorisation revient sous le régime normal et sera vérifiée selon la règle en vigueur (elle peut donc être encore autorisée ou effectivement interdite). Le false n’indique donc pas ici qu’on interdit l’action, mais simplement qu’il n’y a plus d’exception.

Remarque : le cas peut en particulier se produire à l’installation d’un plugin placé dans plugins-dist : le statut de webmestre n’est pas en place à ce moment de l’installation de SPIP et certaines opérations peuvent échouer.

  • Auteur :
  • Publié le :
  • Mis à jour : 19/06/15