Soms moeten we een handeling ondernemen waarvoor toestemming nodig is voor een auteur die normaal gesproken niet het recht heeft om dit te doen. Dit kan bijvoorbeeld gebeuren bij een geplande handeling die dan anoniem wordt uitgevoerd.
In dit geval is er een mechanisme via de functie authorize_exception
dat een uitzonderlijke machtiging geeft in de tijd om de betreffende actie uit te voeren.
include_spip('inc/autoriser');
// geef een uitzonderlijke tijdelijke autorisatie
autoriser_exception('modifier', 'article', $id_article);
// realiseer de gewenste handeling
include_spip('action/editer_objet');
objet_modifier('article', $id_article, array('titre' => 'Nieuwe titel'));
// trek de autorisatie weer in
autoriser_exception('modifier', 'article', $id_article, false);
De funtie autoriser_exception($faire, $type, $id, $autoriser)
heeft 4 argumenten:
-
$faire
met dezelfde betekenis als bijautoriser()
-
$type
met dezelfde betekenis als bijautoriser()
-
$id
met dezelfde betekenis als bijautoriser()
-
$autoriser
is een booleaanse waarde die aangeeft of de autorisatie tijdelijk is:- Wanneer
$autoriser
waarde "true
" heeft of niet is aangeleverd, is een uitzonderlijke autorisatie akkoord: alle opautoriser()
volgende oproepen met dezelfde argumenten$faire, $type
en$id
retournerentrue
- Wanneer
$autoriser
waarde "false
"heeft, betekent dit dat de autorisatie weer volgens de normaal geldende regels moet gebeuren (ze kan dus wel of niet zijn toegestaan). Defalse
heeft dus geen betrekking op de handeling, maar geeft aan dat er geen uitzondering meer geldt.
- Wanneer
Opmerking: Dit kan vooral gebeuren bij het installeren van een plug-in die in plugins-dist is geplaatst: de status van webmaster is op het moment van de SPIP-installatie niet aanwezig en sommige bewerkingen zouden kunnen mislukken.