Esempio n. 1
0
 protected function _doBatchUnlinkAction()
 {
     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();
         }
         $deleted = 0;
         $rows = Sitengine_Controller_Request_Http::getSelectedRows($_POST);
         if (sizeof($rows) > 0) {
             foreach ($rows as $id => $v) {
                 $filename = isset($_POST['FILENAME' . $id]) ? $_POST['FILENAME' . $id] : null;
                 $file = $this->getTempDir() . '/' . $filename;
                 if ($filename !== null && is_writeable($file) && unlink($file)) {
                     $deleted++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             if ($deleted < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHUNLINK, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHUNLINK), true);
                 return $this->_goToAction(self::ACTION_ASSIGN);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHUNLINK, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHUNLINK), 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);
     }
 }
Esempio n. 2
0
 protected function _doBatchUnlinkAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->privateAccessGranted($this->getFrontController()->getNewsletterPackage()->getAuthorizedGroups())) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Newsletter/Backend/Campaigns/Attachments/Exception.php';
             throw new Sitengine_Newsletter_Backend_Campaigns_Attachments_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         if (!$this->getEntity()->start()) {
             return $this->_forwardToLogin();
         }
         $deleted = 0;
         $rows = Sitengine_Controller_Request_Http::getSelectedRows($_POST);
         if (sizeof($rows) > 0) {
             foreach ($rows as $id => $v) {
                 $filename = isset($_POST['FILENAME' . $id]) ? $_POST['FILENAME' . $id] : null;
                 $file = $this->getTempDir() . '/' . $filename;
                 if ($filename !== null && is_writeable($file) && unlink($file)) {
                     $deleted++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             if ($deleted < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHUNLINK, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHUNLINK), true);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHUNLINK, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHUNLINK), false);
                 }
             }
         }
         return $this->_goToAction(self::ACTION_ASSIGN);
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
Esempio n. 3
0
 protected function _doBatchDeleteAction()
 {
     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();
         $deleted = 0;
         $rows = Sitengine_Controller_Request_Http::getSelectedRows($_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 => $v) {
                 $affectedRows = $modifier->delete($id);
                 if ($affectedRows > 0) {
                     $deleted++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             if ($deleted < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHTRASH, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHTRASH), true);
                 return $this->_goToAction(self::ACTION_INDEX);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHTRASH, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHTRASH), false);
                 }
             }
             #$this->getDatabase()->getConnection()->exec('UNLOCK TABLES');
         }
         $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);
     }
 }
Esempio n. 4
0
 public function doBatchDeleteAction()
 {
     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();
         $deleted = 0;
         $rows = Sitengine_Controller_Request_Http::getSelectedRows($_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 => $v) {
                 $affectedRows = $modifier->delete($id);
                 if ($affectedRows > 0) {
                     $deleted++;
                 } else {
                     $this->_markedRows[$id] = 1;
                 }
             }
             if ($deleted < sizeof($rows)) {
                 $this->getStatus()->set(Sitengine_Env::STATUS_ERRORBATCHTRASH, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORBATCHTRASH), true);
             } else {
                 if (sizeof($rows) > 0) {
                     $this->getStatus()->set(Sitengine_Env::STATUS_OKBATCHTRASH, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKBATCHTRASH), false);
                 }
             }
             #$this->getDatabase()->getConnection()->exec('UNLOCK TABLES');
         }
         return $this->_goToAction(self::ACTION_INDEX);
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }