【问题标题】:Whats the way to use Zend_Acl in View to show/hide parts of view在视图中使用 Zend_Acl 显示/隐藏部分视图的方法是什么
【发布时间】:2011-06-02 11:30:02
【问题描述】:

我想知道使用 Zend_Acl 显示/隐藏部分视图的方法是什么?我想我会的

  1. 创建一个控制器插件,将登录的用户+acl传递给查看

     $this->view->loggedInUser = Zend_Auth::getIdentity();
     $this->view->acl = Zend_Registry::get('acl');
    
  2. 然后在视图脚本中执行类似的操作

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

或者有更好的方法吗?还是我应该使用 View Helper?是否允许登录用户返回一个布尔值?

【问题讨论】:

    标签: zend-framework zend-acl zend-controller-plugin


    【解决方案1】:

    您在视图中使用它,所以对我来说 ViewHelper 是正确的地方 - 我已经这样做过一次:

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多