Les autorisations sont mal fichues
Dans inc/autoriser.php (ligne 88) je vois :
// Chercher une fonction d'autorisation
// Dans l'ordre on va chercher :
// autoriser_type_faire,
// autoriser_type,
// autoriser_faire,
// autoriser_defaut ;
// puis les memes avec _dist
Ne serait-il pas plus logique de faire :
// Chercher une fonction d'autorisation
// Dans l'ordre on va chercher :
// autoriser_type_faire, la meme avec _dist,
// autoriser_type, la meme avec _dist,
// autoriser_faire, la meme avec _dist,
// autoriser_defaut, la meme avec _dist;
Exemple pratique : je voudrais faire fonctionner
function autoriser_toto_configurer_dist()
Mais celle-ci ne sera jamais atteinte si la fonction autoriser_toto_configurer() n'existe pas ! Comment pouvoir la surcharger dans ce cas ?
Merci d'avance.
Pour pousser la réflexion, une humble proposition :
La fonction autoriser_defaut() ne devrait être appelée qu'en dernier ressort, si aucune des autorisations appelées n'a été spécifiquement définie. Actuellement, elle n'autorise heureusement que les Admins non restreints, ce qui offre une sécurité finalement : vaut mieux ne pas autoriser à n'importe qui, par défaut.
Je propose un second patch qui permet la propagation des autorisations, de la plus générale à la plus fine, sachant que autoriser_defaut() n'est appelée qu'en dernier ressort. Les _dist évidemment, restent intimement liées aux non _dist.
Donc, pour que l'autorisation 'faire' 'qqchose' soit donnée, il faudrait que :
1. l'autorisation de 'faire' soit positive (ou que la fonction associée ne soit pas trouvée)
2. puis, idem pour celle de 'qqchose',
3. et enfin, idem pour celle de 'faire' 'qqchose'