Bonjour,

J'aimerais pouvoir gérer les droits de mes utilisateurs sans avoir à modifier le code des pages concernées. J'ai donc affecté mes utilisateurs à des groupes et j'aimerais définir les pages accessibles à chaque groupe.

Les URL des pages de mon site étant du type "index.php?section=boutique&action=fiche_produit", je pourrais facilement contrôler si l'utilisateur a les droits suffisant pour afficher la page, avant d'instancier la classe concernée (dans ce exemple la classe "boutique"), et d'appeler la méthode voulue (ici fiche_produit() ).
D'autre part, je pensais créer une table MySQL listant les pages accessibles à chaque groupe, et enregistrer dans une variable de session l'ensemble des pages accessibles à l'utilisateur, lors de son arrivée sur le site puis de son éventuelle identification.

Cependant, j'hésite entre enregistrer ces droits en BDD ou dans un fichier XML :
- D'un coté, je suis plus à l'aise dans l'utilisation des BDD, et je me demande s'il ne serait pas plus simple de mettre à jour ces droits en cas d'ajout de groupe ou de page ou de modification des droits, et plus rapide de trouver les droits d'un groupe par ce procédé. Enfin, j'ai peur que la taille du fichier soit un peu trop importante, s'il y a beaucoup de pages et de groupe. On pourrait imaginer qu'il y ait 1000 droits lister (10 groupes, 20 sections, et 5 actions possibles par section). Ne serait-il pas lourd de lire l'ensemble de ce fichier à chaque nouveau visiteur?
- D'un autre, enregistrer ces informations en BDD fait qu'en cas de saturation ou d'indisponibilité de la base, tout nouveau visiteur se retrouverait bloqué, ne pouvant pas connaître ses droits.

Quelle serait d'après vous la solution la plus adaptée à cette problématique?

Merci d'avance pour vos réponses!