Example #1
0
 protected function _doBatchUpdateAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->privateAccessGranted($this->getFrontController()->getPermiso()->getAuthorizedGroups())) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Permiso/Backend/Users/Memberships/Exception.php';
             throw new Sitengine_Permiso_Backend_Users_Memberships_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         if (!$this->getEntity()->start()) {
             return $this->_forwardToLogin();
         }
         $modifier = $this->_getModifierModelInstance();
         $updated = 0;
         $rows = Sitengine_Controller_Request_Http::getModifiedRows($_POST);
         /*
         $tables = array(
             $this->getFrontController()->getPermiso()->getUsersTableName() => 'READ',
             $this->getFrontController()->getPermiso()->getMembershipsTableName() => 'WRITE'
         );
         */
         if (sizeof($rows) > 0) {
             /*
             # lock tables
             require_once 'Sitengine/Sql.php';
             $q = Sitengine_Sql::getLockQuery($tables);
             $this->getDatabase()->getConnection()->exec($q);
             */
             foreach ($rows as $id => $data) {
                 $affectedRows = $modifier->updateFromList($id, $data, $this->getFrontController()->getPermiso()->getAuthorizedGroups());
                 if ($affectedRows > 0) {
                     $updated++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             #$this->getDatabase()->getConnection()->exec('UNLOCK TABLES');
             if ($updated < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHUPDATE), true);
                 return $this->_goToAction(self::ACTION_INDEX);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHUPDATE), false);
                 }
             }
         }
         $this->getStatus()->save();
         $args = array(Sitengine_Env::PARAM_ANCESTORID => $this->getEntity()->getAncestorId());
         $query = array(Sitengine_Env::PARAM_SORT => $this->getRequest()->get(Sitengine_Env::PARAM_SORT), Sitengine_Env::PARAM_ORDER => $this->getRequest()->get(Sitengine_Env::PARAM_ORDER));
         $route = $this->getFrontController()->getRouter()->getRoute(Sitengine_Permiso_Backend_Front::ROUTE_USERS_MEMBERSHIPS);
         $uri = $this->getRequest()->getBasePath() . '/' . $route->assemble($args);
         $uri .= Sitengine_Controller_Request_Http::makeNameValueQuery($query, '&');
         $this->getResponse()->setRedirect($uri);
         $this->getResponse()->sendResponse();
         print ' ';
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
Example #2
0
 protected function _doBatchAssignAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->privateAccessGranted($this->getFrontController()->getProtoPackage()->getAuthorizedGroups())) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Proto/Backend/Goodies/Shouldies/Exception.php';
             throw new Sitengine_Proto_Backend_Goodies_Shouldies_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         if (!$this->getEntity()->start()) {
             return $this->_forwardToLogin();
         }
         $modifier = $this->_getModifierModelInstance();
         $updated = 0;
         $rows = Sitengine_Controller_Request_Http::getModifiedRows($_POST);
         #Sitengine_Debug::print_r($rows);
         # prepare data
         $gid = $this->getPermiso()->getDirectory()->getGroupId($this->getFrontController()->getProtoPackage()->getOwnerGroup());
         $gid = !is_null($gid) ? $gid : Sitengine_Permiso::GID_ADMINISTRATORS;
         $date = new Zend_Date();
         $date->setTimezone('UTC');
         $cdate = $date->get(Zend_Date::ISO_8601, Sitengine_Env::LANGUAGE_EN);
         /*
         $tables = array(
             $this->getFrontController()->getProtoPackage()->getGoodiesTableName() => 'READ',
             $this->getFrontController()->getProtoPackage()->getShouldiesTableName() => 'WRITE'
         );
         */
         if (sizeof($rows) > 0) {
             /*
             # lock tables
             require_once 'Sitengine/Sql.php';
             $q = Sitengine_Sql::getLockQuery($tables);
             $this->getDatabase()->getConnection()->exec($q);
             */
             foreach ($rows as $id => $data) {
                 $affectedRows = 0;
                 $filename = isset($_POST['FILENAME' . $id]) ? $_POST['FILENAME' . $id] : null;
                 if ($filename !== null) {
                     $data[Sitengine_Permiso::FIELD_GID] = $gid;
                     $data['cdate'] = $cdate;
                     $data['mdate'] = $cdate;
                     $data['goodyId'] = $this->getEntity()->getAncestorId();
                     $affectedRows = $modifier->assignFromList($filename, $data);
                 }
                 if ($affectedRows > 0) {
                     $updated++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             #$this->getDatabase()->getConnection()->exec('UNLOCK TABLES');
             if ($updated < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHASSIGN, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHASSIGN), true);
                 return $this->_goToAction(self::ACTION_ASSIGN);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHASSIGN, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHASSIGN), false);
                 }
             }
         }
         $this->getStatus()->save();
         $args = array(Sitengine_Env::PARAM_ANCESTORID => $this->getEntity()->getAncestorId());
         $route = $this->getFrontController()->getRouter()->getRoute(Sitengine_Proto_Backend_Front::ROUTE_GOODIES_SHOULDIES_ASSIGN);
         $uri = $this->getRequest()->getBasePath() . '/' . $route->assemble($args);
         $this->getResponse()->setRedirect($uri);
         $this->getResponse()->sendResponse();
         print ' ';
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
Example #3
0
 public function doBatchUpdateAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->privateAccessGranted($this->_authorizedGroups)) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Sitemap/Backend/Exception.php';
             throw new Sitengine_Sitemap_Backend_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         if (!$this->_startEntity()) {
             return $this->_forwardToLogin();
         }
         $modifier = $this->_getModifierModelInstance();
         $updated = 0;
         $rows = Sitengine_Controller_Request_Http::getModifiedRows($_POST);
         /*
         $tables = array(
             $this->getFrontController()->getSitemapPackage()->getTableSitemap() => 'WRITE'
         );
         */
         if (sizeof($rows) > 0) {
             /*
             # lock tables
             require_once 'Sitengine/Sql.php';
             $q = Sitengine_Sql::getLockQuery($tables);
             $this->getDatabase()->getConnection()->exec($q);
             */
             foreach ($rows as $id => $data) {
                 $affectedRows = $modifier->updateFromList($id, $data, $this->_authorizedGroups);
                 if ($affectedRows > 0) {
                     $updated++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             #$this->getDatabase()->getConnection()->exec('UNLOCK TABLES');
             if ($updated < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHUPDATE), true);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHUPDATE), false);
                 }
             }
         }
         return $this->_goToAction(self::ACTION_INDEX);
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }