Advarsel, en masse Zend Framework forude!
Du kan nemt håndtere 1. og 2. med Zend_Acl og Zend_Navigation .
For nummer 3 bliver du nødt til at forespørge efter ACL-objektet i din model og lave en masse ting i hånden. Du kan også bruge Zend Framework til formularerne og inkludere specifikke formularelementvalidatorer afhængigt af brugerens rolletilladelse.
EDIT:
Hvis du ikke har lyst til at gå ZF-ruten, kan du i det mindste tage et kig på, hvordan ACL håndteres i ZF.