✏️ 正在编辑: LibraryAcl.php
路径:
/srv/systems_dir/yuppiecred-bkp/library/Core/LibraryAcl.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use \Modules\Gatekeeper\Service\Gatekeeper as Gatekeeper; class Core_LibraryAcl extends Zend_Acl { private $_role; function __construct($role) { $this->_role = $role; if ($this->_role != null) { $this->addRole($this->_role); $this->adicionarRecursos(); $this->initResources(); $this->checarPlano(); } } protected function adicionarRecursos() { $resource = new Model_Resource(); $resources = $resource->listar(array('privilege' => 'null')); foreach($resources as $resource) { $this->add(new Zend_Acl_Resource($resource->resource)); } } protected function initResources() { $grupoId = Yuppie_Auth::getIdentity()->grupo_id; if( $grupoId > 0 ){ $permissao = new Model_DbTable_Permissao(); $permissoes = $permissao->getPermissoesGrupoUsuario($grupoId); foreach($permissoes as $allow => $perms) { foreach($perms as $resource => $privileges) { if ($this->has($resource) && $allow) { $this->allow($this->_role, $resource, $privileges); } } } } $config = new Zend_Config_Ini(CLIENT_PATH . '/configs/application.ini'); if( !isset($config->production->yuppie->callcenter) || $config->production->yuppie->callcenter != 1 ){ $this->removeAllow($this->_role, 'callcenter'); $this->deny($this->_role, 'callcenter', 'index'); } $this->allow($this->_role, 'index'); $this->allow($this->_role, 'error'); if( $this->_role != "Corretor" && empty(Yuppie_Auth::getIdentity()->corretor_id) ){ $this->allow($this->_role, 'suporte-yuppie'); } $menuIcones = new Zend_Config_Xml(APPLICATION_PATH . "/configs/navigation-second.xml", 'nav'); $menuIcones = new Zend_Navigation($menuIcones); Zend_Registry::set('nav3', $menuIcones); $menuConfig = new Zend_Config_Xml(APPLICATION_PATH . "/configs/navigation-config.xml", 'nav'); $menuConfig = new Zend_Navigation($menuConfig); Zend_Registry::set('nav2', $menuConfig); $menuCall = new Zend_Config_Xml(APPLICATION_PATH . "/configs/navigation-callcenter.xml", 'nav'); $menuCall = new Zend_Navigation($menuCall); Zend_Registry::set('nav-callcenter', $menuCall); } public function isAllowed($role = null, $resource = null, $privilege = null) { if( !$this->has($resource) ){ return; } return parent::isAllowed($role, $resource, $privilege); } public function checarPlano() { $remover = Gatekeeper::navPermissoes(); if (empty($remover)) { return; } foreach ($remover as $privilege => $resource) { $this->removeAllow($this->_role, $resource, $privilege); $this->deny($this->_role, $resource, $privilege); } } }
💾 保存文件
← 返回文件管理器