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); } }
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); } }
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); } }