/**
  * Update action for permission controller
  * @throws Zend_Exception
  * @return NULL
  */
 public function updateAction()
 {
     // action body
     try {
         $translate = Zend_Registry::get('Zend_Translate');
         $roleId = $this->getRequest()->getParam('id', 0);
         $mdlRole = new Acl_Model_Role();
         $role = $mdlRole->find($roleId)->current();
         if (!$role) {
             throw new Exception($translate->translate("LBL_ROW_NOT_FOUND"));
         }
         #Zend_Debug::dump( $this->getRequest()->getParams() );
         $mdlPermission = new Acl_Model_Permission();
         #$resources = $this->getRequest()->getParam( 'hrs');
         $hrs = new Zend_Session_Namespace('resourceDataIds');
         $resources = $hrs->hrs;
         zend_session::namespaceUnset('resourceDataIds');
         $arrResources = explode(',', $resources);
         #$mdlPermission->deleteByRole($role);
         $permissions = $role->findDependentRowset('Acl_Model_Permission', 'Role');
         foreach ($permissions as $perm) {
             #$perm = $mdlPermission->find()->current();
             $perm->delete();
         }
         foreach ($arrResources as $resourceId) {
             #echo $this->getRequest()->getParam('cb_res_'.$resourceId, 'deny')."<br>";
             $permission = $mdlPermission->createRow();
             $permission->role_id = $role->id;
             $permission->resource_id = $resourceId;
             $permission->privilege = $this->getRequest()->getParam('cb_res_' . $resourceId, 'deny');
             $permission->save();
         }
         /* @var $cache Zend_Cache_Backend_File */
         $cache = Zend_Registry::get('cacheACL');
         $mdlRole = new Acl_Model_Role();
         $roles = $mdlRole->getList();
         foreach ($roles as $role) {
             if ($cache->test('cacheACL_' . $role->id)) {
                 $cache->remove('cacheACL_' . $role->id);
             }
         }
         $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("LBL_CHANGES_SAVED")));
         //$this->_helper->redirector( "manage", "permission", "acl", array('role'=>$role->id) );
         $this->_helper->redirector("list", "role", "acl");
     } catch (Exception $e) {
         $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage()));
         $this->_helper->redirector("list", "role", "acl");
     }
     return null;
 }