2

私は application\plugins\Acl.php を持っています:

class Application_Plugin_Acl extends Zend_Controller_Plugin_Abstract {
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
    $acl = new Zend_Acl();

そこに役割を追加します。また、ヘルパー HasAccess.php もあります。

class Zend_View_Helper_HasAccess extends Zend_View_Helper_Abstract {
    public function hasAccess($role, $action, $controller) {
    if (!$this->_acl) {
        $acl = Zend_Controller_Front::getInstance()->getPlugin('Application_Plugin_Acl');
    }
    return $acl->isAllowed($role, $controller, $action);

ビューファイルからロールにアクセスできません:

$this->hasAccess('user', 'partner', 'news')
4

1 に答える 1

0

application \ plugins \ Acl.phpで、そのACLインスタンスをビューにアタッチする必要があります

class Application_Plugin_Acl extends Zend_Controller_Plugin_Abstract {
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
    $acl = new Zend_Acl();

    // Set ACL to view files
    $layout = Zend_Layout::getMvcInstance();
    $view   = $layout->getView();
    $view->acl = $acl;
}

それよりも、ビューファイルでACLを使用できます。

$this->acl->hasAccess(...);

ビューヘルパーでACLを使用する場合は、次を使用します。

$this->view->acl->hasAccess(...);
于 2012-10-03T08:00:18.140 に答える