Varning, mycket Zend Framework framför dig!
Du kan enkelt hantera 1. och 2. med Zend_Acl och Zend_Navigation .
För nummer 3 måste du fråga efter ACL-objektet i din modell och göra en massa saker för hand. Du kan också använda Zend Framework för formulären och inkludera specifika formulärelementvaliderare beroende på användarens rollbehörighet.
EDIT:
Om du inte känner för att gå ZF-vägen kan du åtminstone ta en titt på hur ACL hanteras i ZF.