使用zend_acl视图显示/隐藏视图的部分的方法
-
14-10-2019 - |
题
我想知道使用zend_acl显示/隐藏视图部分的方法是什么?我在想我会
创建一个传递用户 + ACL登录的控制器插件以查看
$this->view->loggedInUser = Zend_Auth::getIdentity(); $this->view->acl = Zend_Registry::get('acl');
然后在查看脚本中做类似的事情
$this->acl->isAllowed($this->view->loggedInUser, 'resource', 'privilege');
或者,还有更好的方法?还是我应该使用视图助手?返回布尔值是否允许登录用户?
解决方案
您正在视图中使用它,因此对我而言,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);
}
}
不隶属于 StackOverflow