Beste PHP'ers,

Ik ben bezig met een systeem, de login en voornamelijk de ACL heb ik voor elkaar, maar nu stuit ik tegen het probleem: de navigation. Elke user wil natuurlijk zijn eigen menu voorgeschoteld krijgen. Module's waarvoor hij/zij geen toegang voor heeft, moeten natuurlijk niet in het menu. Maar het kan ook zijn dat alleen bepaalde sub-pagina's niet getoond mogen worden, als bijv. de user de content van een module wel mag bekijken, maar niet mag bewerken.

Alvast bedankt.
Waarschijnlijk offtopic: Wat is 'ACL'?

maar nu stuit ik tegen het probleem: de navigation

Waar loop je precies op vast, op de code of achter de theorie / het idee erachter?

Maar het kan ook zijn dat alleen bepaalde sub-pagina's niet getoond mogen worden

Eigenlijk gaat het nog verder... als geheimepagina3.php niet in het menu staat omdat die gebruiker niet genoeg rechten heeft, mag hij ook die pagina niet openen. Het is dus niet alleen het menu, maar ook de pagina's waar een controle op moet zitten.

Wellicht nog wel belangrijker zelfs dan het menu...
ACL op WikiPedia :)

Een ACL, oftewel Access Control List. Meteen antwoord op punt 3, met de acl controleer ik of iemand rechten heeft.

Waar ik op vast loop is de theorie, hoe moet ik zoiets maken, ik ben dus nog niet begonnen met code schrijven.
bump
Ik zou per pagina bijhouden welke acl wel en niet gebruik mag maken van de pagina.
Met de menu items kun je weer linken naar de pagina's waar ze naar toe leiden en zo weet je of je ze wel moet tonen ja of nee.

Kun je een beetje aangeven hoeveel verschillende gebruikers je hebt? is het hierarchies of niet?
Ik heb op dit moment alleen de acl, loginsysteem, en t templategebeuren.

Het gaat op dit moment om zo'n 30 gebruikers, waarvan er 15 actief gebruik van gaan maken.
bump
Maak gewoon een tabel 'menuitems' in je database met de volgende kolommen:

id, naam, url, acl_id

voorbeeld records:
1, 'Home', 'homepage.php', 1
2, 'Templates', 'template.php', 2

en een tabel 'acls' met de volgende kolommen:
id, omschrijving, login, template

voorbeeld records:
1, 'Voor iedere gebruiker toegankelijk', 'yes', 'yes'
2, 'Alleen voor template gebruikers', 'no', 'yes'
@Frank, het punt is alleen dat ik al een systeem heb…

ik heb de volgende tabellen:
permissions (ID, permKey, permName): Alle permissies die gebruikt worden door pagina's
roles (ID, roleName): Groepen zoals, admin's, redactiemedewerkers etc.
role_perms(ID, roleID, permID): welke permissie;s heeft welke groep.
users: de gebruikers
user_roles: Tot welke groep(en) behoort een gebruiker
user_perms: een tabel met uitzonderingen

Aan de hand van deze tabellen moet ik dus een aangepast menu hebben, alleen ik heb geen idee waar ik moet beginnnen…

Reageren