Poczytaj o Zend_Acl w szczególności, jak zaimplementować listy dostępu w postaci pluginu sprawdzającego przed każdą akcją czy użytkownik o danej roli ma dostęp do żądanego zasobu. Jeśli masz aplikację o budowie modularnej i np. chcesz ograniczyć dostęp użytkownikowi (rola user) do np. modułu test, to:
class XYZ_wymyslcossobie extends Zend_Acl
{
public function __construct()
{
// zdefiniuj zasób
$this->add(new Zend_Acl_Resource("test"));
// zdefiniuj rolę usera - tu kłania się Zend_Auth
$this->addRole(new Zend_Acl_Role("user"));
// i rolę admina:
$this->addRole(new Zend_Acl_Role("admin"), "user");
// określ dostęp użytkowników do zasobu
// zabroń userowi:
$this->deny("user", "test");
// zezwól adminowi
$this->allow("admin", "test");
}
}
// I voila! To wszystko.
ps więcej znajdziesz w sieci pod hasłami "Zend_Acl plugin" oraz "Zend_Auth"