Voor een website die ik aan het bouwen ben wil ik een rechtenstructuur gaan opzetten.
Ik was eerst van plan om gebruik te maken van ZEND_ACL (Zend framework), maar standaard wordt daarbij er vanuit gegaan dat alle rechten hard-coded worden vastgelegd in php code, terwijl ik het geheel juist zo flexibel mogelijk op wil zetten. Uiteindelijk ga ik waarschijnlijk nog steeds gebruik maken van zend_acl, maar bouw ik mijn eigen database backend er voor.
Om te beginnen heb ik dus een database structuur nodig om de verschillende gegevens vast te leggen. Ik wil er de volgende zaken mee kunnen vastleggen:
- één gebruiker kan meerdere rollen hebben
- één rol kan rechten hebben op verschillende objecten (resources)
- Per rol liggen ook de privileges vast die rol heeft (bijvoorbeeld read, write, delete, enz)
Met bovenstaande gegevens kom ik tot onderstaand stukje database model:

Uiteraard nog zeer simplistisch, maar dit is slechts de eerste opzet.
De koppeling tussen st_priviledge en st_recourse heeft als doel het vast legen welke priviledges er bestaan voor een bepaalde recourse.
Waar ik nu naar op zoek ben is commentaar op dit model
Alle input is welkom. (De namen van de koppeltabellen lijken trouwens nog nergens op, daar moet ik nog wat beters voor bedenken)
Ik was eerst van plan om gebruik te maken van ZEND_ACL (Zend framework), maar standaard wordt daarbij er vanuit gegaan dat alle rechten hard-coded worden vastgelegd in php code, terwijl ik het geheel juist zo flexibel mogelijk op wil zetten. Uiteindelijk ga ik waarschijnlijk nog steeds gebruik maken van zend_acl, maar bouw ik mijn eigen database backend er voor.
Om te beginnen heb ik dus een database structuur nodig om de verschillende gegevens vast te leggen. Ik wil er de volgende zaken mee kunnen vastleggen:
- één gebruiker kan meerdere rollen hebben
- één rol kan rechten hebben op verschillende objecten (resources)
- Per rol liggen ook de privileges vast die rol heeft (bijvoorbeeld read, write, delete, enz)
Met bovenstaande gegevens kom ik tot onderstaand stukje database model:

Uiteraard nog zeer simplistisch, maar dit is slechts de eerste opzet.
De koppeling tussen st_priviledge en st_recourse heeft als doel het vast legen welke priviledges er bestaan voor een bepaalde recourse.
Waar ik nu naar op zoek ben is commentaar op dit model