Bonjour à tous,
Je rencontre actuellement un souçis avec la gestion des droits sur un de mes sites.
Fonctionnement :
Actuellement les droits des utilisateurs sont gérer à travers une classe et une bdd.
Chaque utilisateur appartient à un groupe.
Dans la base, des "ressources" sont définies , elles correspondent au droits , comme par exemple "poster_news". De plus à cette ressource j'associe un niveau d'accès qui correspond au groupe minimal qui y a accès.
Reste finalement une table qui permet de faire la liaison entre les ressource et les utilisateurs.
Extrait de code simplifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 $ressources = $sql->query('SELECT label,niveau FROM ressources'); while($ressource = $ressources->fetch()) { $ACL->addRessource($ressource['label'],$ressource['niveau']); // Ajout des ressources (droits) à l'objet de gestion d'accès } // Pour l'utilisateur connecté je récupère ses droits spécifique afin de lui autoriser ou interdire l'accès aux ressources $exceptions = $sql->query(SELECT label,droit FROM user_droits LEFT JOIN users_ressources...... WHERE idUSer = 5); //Je vous passe les conditions de jointure while($exception = $exceptions->fetch()) { $droit = ($exception['droit']==1)?true:false; $ACL->allowUser($exception['label'],$droit); } //Ensuite quand nécessaire je test l'accès a une ressource : if($ACL->isAllowed('nom_ressource')) { //OK }
Problème :
Tout marchais très bien jusqu'à maintenant , sauf que désormais un de mes clients est allergique au cahier des charges et me demande d'ajouter et supprimer des droits sans arret.
Du coup pour les nouveaux utilisateurs pas de problème mais pour les autres je dois recréer une entrée dans la table qui fait la liasion entre utilisateur et ressource.
Du coup je me demande si ma manière de gérer les droits est la bonne ? Si mes droits ne sont pas tous définis de base ça devient une galère à gérer









Répondre avec citation





Partager