Uwaga, przed nami dużo Zend Framework!
Możesz łatwo obsłużyć 1. i 2. z Zend_Acl i Zend_Navigation .
W przypadku numeru 3 będziesz musiał odpytywać obiekt ACL w swoim modelu i robić wiele rzeczy ręcznie. Możesz również użyć Zend Framework dla formularzy i dołączyć określone walidatory elementów formularza w zależności od uprawnień roli użytkownika.
EDYTUJ:
Jeśli nie masz ochoty jechać trasą ZF, możesz przynajmniej przyjrzeć się, jak ACL jest obsługiwana w ZF.