Les vérifications

{{{Le bon auteur}}} La plupart des actions de SPIP vérifient uniquement que l’auteur en cours est bien le même que celui qui a cliqué l’action. Cela se fait avec :
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
La fonction de sécurité tue le script si l’auteur actuel n’est pas celui qui a demandé l’action, sinon elle renvoie l’argument demandé (ici dans $arg). {{{Le bon argument}}} Ensuite, généralement, la variable $arg reçue est vérifiée pour voir si elle est conforme à ce qu’on en attend. Elle prend souvent la forme de « id_objet », parfois « objet/id_objet » ou plus complexe comme ici des éléments de date :
if (!preg_match(",^\W*(\d+)\W(\w*)$,", $arg, $r)) {
	spip_log("action_dater_dist $arg pas compris");
	return;
}
{{{Et l’autorisation}}} Certaines actions vérifient en plus que l’auteur a bien l’autorisation d’exécuter cette action (mais en général cette autorisation est déjà donnée en amont : le lien vers l’action n’apparaissant pas pour l’auteur n’en ayant pas les droits). Par exemple :
if (!autoriser('modererforum', 'article', $id_article))
	return;
// qui pourrait etre aussi :
if (!autoriser('modererforum', 'article', $id_article)) {
	include_spip('inc/minipres');
	minipres('Moderation',"Vous n'avez pas l'autorisation de régler la modération du forum de cet article");
	exit;
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 24/11/09

Traductions : English, français, Nederlands