/** * addRootLevelsToAcl * @param Model_Folders $objModelFolders * @param integer $intModuleId * @author Thomas Schedler <*****@*****.**> * @version 1.0 */ public function addRootLevelsToAcl(Model_Folders $objModelFolders, $intModuleId, $intZoneId = self::ZONE_ZOOLU) { try { /** * add resources & groups & privileges */ $arrResources = $objModelFolders->getRootLevelsPermissions($intModuleId, $intZoneId); foreach ($arrResources as $objResource) { // check if acel for this zone exists if (!array_key_exists('id_' . $objResource->zone, $this->arrZoneAcls) || !$this->arrZoneAcls['id_' . $objResource->zone] instanceof Acl) { $this->arrZoneAcls['id_' . $objResource->zone] = new Acl(); } $strResourceId = $objResource->languageId == 0 ? Security::RESOURCE_ROOT_LEVEL_PREFIX . $objResource->id : Security::RESOURCE_ROOT_LEVEL_PREFIX . $objResource->id . '_' . $objResource->languageId; if (!$this->arrZoneAcls['id_' . $objResource->zone]->has($strResourceId)) { $this->arrZoneAcls['id_' . $objResource->zone]->add(new Zend_Acl_Resource($strResourceId)); } if (!$this->arrZoneAcls['id_' . $objResource->zone]->hasRole($objResource->groupKey)) { $this->arrZoneAcls['id_' . $objResource->zone]->addRole(new Zend_Acl_Role($objResource->groupKey)); } $this->arrZoneAcls['id_' . $objResource->zone]->allow($objResource->groupKey, $strResourceId, $objResource->permissionTitle); } } catch (Exception $exc) { Zend_Registry::get('Core')->logger->err($exc); } }