Ik heb een groepen hiërarchie gemaakt in PHP en nu wil ik hier op een rechten structuur oplos laten zodat die de rechten van een gebruiker gaat uitrekenen via het groepen structuur
De groepen staan allemaal in een tree object en vanuit hier kan ik bepaalde nodes ophalen en vanuit die nodes de parent weer ophalen. Nu is alleen de vraag hoe ga ik verder.
Als rechten structuur heb ik volgende voor gemaakt. De database tabel ziet er als volgt uit.
Als instellen heb ik in gedachten hoe ik het ga doen. Ik kies eerst een groep en kan dan alle rechten hier voor instellen, maar als uitlezen loop ik tegen het volgende aan.
De tabel zit dus helemaal gevult met allemaal rechtregels en die via de boom structuur een array van worden gemaakt waarmee ik makkelijk de rechten kan uitlezen. Deze array zal ook gecached worden zodat de rechten één keer worden uitgerekend voor de gebruik en daarna uit cache gehaald worden.
Als output wil ik het volgende hebben $array[$level][$datalevel][$flag] zodat ik via een functie alleen maar drie dingen hoef door te geven om achter het recht van de gebruiker te komen.
Maar nu loop ik tegen het volgende probleem aan. Welke manier is nou het beste om deze rechten allemaal te door te nemen en ook via de boom structuur te kijken of de ouders ook toegang geven om het recht te hebben.
De groepen staan allemaal in een tree object en vanuit hier kan ik bepaalde nodes ophalen en vanuit die nodes de parent weer ophalen. Nu is alleen de vraag hoe ga ik verder.
Als rechten structuur heb ik volgende voor gemaakt. De database tabel ziet er als volgt uit.
code:
1
2
3
4
5
6
7
| ruleid // regel nummer target // dit kan een groep of gebruiker zijn targetid // id nummer van het target level // dit kan zijn een engine,module of core name // bij engine en core zal dit meestal none worden maar als level module is is dit de module naam datalevel // dit is de actie waarop het recht ligt flag // dit kan allow, deny of null zijn |
Als instellen heb ik in gedachten hoe ik het ga doen. Ik kies eerst een groep en kan dan alle rechten hier voor instellen, maar als uitlezen loop ik tegen het volgende aan.
De tabel zit dus helemaal gevult met allemaal rechtregels en die via de boom structuur een array van worden gemaakt waarmee ik makkelijk de rechten kan uitlezen. Deze array zal ook gecached worden zodat de rechten één keer worden uitgerekend voor de gebruik en daarna uit cache gehaald worden.
Als output wil ik het volgende hebben $array[$level][$datalevel][$flag] zodat ik via een functie alleen maar drie dingen hoef door te geven om achter het recht van de gebruiker te komen.
Maar nu loop ik tegen het volgende probleem aan. Welke manier is nou het beste om deze rechten allemaal te door te nemen en ook via de boom structuur te kijken of de ouders ook toegang geven om het recht te hebben.