コード例 #1
0
 /**
  * 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);
     }
 }