2011-01-02 10 views
5

Zastanawiam się, jaki jest sposób użycia Zend_Acl do pokazywania/ukrywania części widoku? Myślę będęJaki jest sposób użycia Zend_Acl w widoku do pokazywania/ukrywania części widoku

  1. Tworzenie Plugin Controller, która przechodzi zalogowanego użytkownika + ACL aby

    $this->view->loggedInUser = Zend_Auth::getIdentity(); 
    $this->view->acl = Zend_Registry::get('acl'); 
    
  2. Następnie w widoku skryptów zrobić coś

    $this->acl->isAllowed($this->view->loggedInUser, 'resource', 'privilege'); 
    

A może jest lepszy sposób? A może powinienem użyć View Helper? Zwraca boolean, czy zalogowany użytkownik jest dozwolony?

Odpowiedz

4

Używasz go na widoku, więc dla mnie ViewHelper jest prawidłowe miejsce do tego - Zrobiłem to raz ten sposób:

class Zend_View_Helper_HasAccess extends Zend_View_Helper_Abstract 
{ 
    private $_acl; 
    public function hasAccess($role, $controller, $action) 
    { 
     if (!$this->_acl) { 
      $this->_acl = Zend_Controller_Front::getInstance()->getPlugin('Acl'); 
      //In yout case registry, but front controller plugin is better way to implement ACL 
     } 
     return $this->_acl->isAllowed($role, $controller, $action); 
    } 
} 
Powiązane problemy