Frage

Ich frage mich, wie man Zend_acl verwendet, um Sichtparteile zu zeigen/zu verbergen? Ich denke, ich werde es tun

  1. Erstellen Sie ein Controller -Plugin, das die angemeldete in Benutzer + ACL an die Anzeige übergibt

     $this->view->loggedInUser = Zend_Auth::getIdentity();
     $this->view->acl = Zend_Registry::get('acl');
    
  2. Dann tun Skripte so etwas wie

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

Oder gibt es einen besseren Weg? Oder sollte ich einen Ansichtshelfer verwenden? Das gibt einen Booleschen zurück, unabhängig davon, ob der angemeldete Benutzer erlaubt ist?

War es hilfreich?

Lösung

Sie verwenden es in der Ansicht. Für mich ist Suchhelper dafür ein richtiger Ort - ich habe es einmal so gemacht:

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);
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top