Améliorer la sécurité des objets en utilisant les autorisations

Peut-on ajouter un appel a une nouvelle fonction autoriser_url_ecrire() :

    function autoriser_url_ecrire($exec){
        $r = true;
        if ($e = trouver_objet_exec($exec)){
            $autorisation = "autoriser_".$e['edition'] ? 'modifier' : 'voir';
            $r = $autorisation($e['type'], $e['id_table_objet']);
        }
        return $r;
    }

dans https://git.spip.net/spip/spip/src/branch/4.1/ecrire/index.php#L166 sous cette forme :


if ($var_f = tester_url_ecrire($exec)) {
    if ( autoriser_url_ecrire($exec) ){
	    $var_f = charger_fonction($var_f);
	    $var_f(); // at last
    } else {
        $var_f = charger_fonction('403');
	    $var_f($exec);        
    }
} else {
	// Rien de connu: rerouter vers exec=404 au lieu d'echouer
	// ce qui permet de laisser la main a un plugin
	$var_f = charger_fonction('404');
	$var_f($exec);
}

L'objectif principal étant de mieux gérer les accès a exec=objets. J'ai l'impression qu'il y a souvent des cas on l'on peut voir la liste d'objets sans pour autant avoir le droit de voir.

Modification effectuée par JamesRezo