コード例 #1
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 public function _doUpdateAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->authenticatedAccessGranted()) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Permiso/Frontend/User/Exception.php';
             throw new Sitengine_Permiso_Frontend_User_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         $data = $this->getModifier()->update();
         if (is_null($data)) {
             $this->getStatus()->set(Sitengine_Env::STATUS_ERRORUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORUPDATE), true);
             return $this->_goToAction(self::ACTION_UPDATE);
         } else {
             $this->getPermiso()->getAuth()->reauthenticate($this->getPermiso()->getAuthAdapter(), $this->getPermiso()->getAuth()->getId());
             $this->getStatus()->set(Sitengine_Env::STATUS_OKUPDATE, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKUPDATE), false);
             return $this->_goToAction(self::ACTION_UPDATE);
         }
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
コード例 #2
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 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);
     }
 }
コード例 #3
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 public function sendMailAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->privateAccessGranted($this->getFrontController()->getFormToMailPackage()->getAuthorizedGroups())) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/FormToMail/Default/Exception.php';
             throw new Sitengine_FormToMail_Default_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         $mailer = $this->_getMailerInstance();
         if (!$mailer->checkInput()) {
             $this->getStatus()->set(self::STATUS_SEND_ERROR, $this->getTranslate()->translate(self::STATUS_SEND_ERROR), true);
             return $this->_goToAction(self::ACTION_INDEX);
         }
         $this->getStatus()->set(self::STATUS_SEND_OK, $this->getTranslate()->translate(self::STATUS_SEND_OK), true);
         $mailer->send();
         $this->getStatus()->save();
         $route = $this->getFrontController()->getRouter()->getRoute(Sitengine_FormToMail_Front::ROUTE_CONFIRM);
         $uri = $this->getRequest()->getBasePath() . '/' . $route->assemble(array());
         $this->getResponse()->setRedirect($uri);
         $this->getResponse()->sendResponse();
         print ' ';
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
コード例 #4
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 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);
     }
 }
コード例 #5
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 protected function _doDeleteAction()
 {
     try {
         $this->_start();
         if (!$this->getPermiso()->getAcl()->authenticatedAccessGranted()) {
             return $this->_forwardToLogin();
         }
         require_once 'Sitengine/Http.php';
         if (!Sitengine_Http::checkReferer()) {
             require_once 'Sitengine/Blog/Frontend/Blogs/Posts/Comments/Exception.php';
             throw new Sitengine_Blog_Frontend_Blogs_Posts_Comments_Exception('bad request', Sitengine_Env::ERROR_BAD_REQUEST);
         }
         $this->getEntity()->start();
         $modifier = $this->_getModifierModelInstance();
         if (!$modifier->delete()) {
             $this->getStatus()->set(Sitengine_Env::STATUS_ERRORDELETE, $this->getTranslate()->translate(Sitengine_Env::STATUS_ERRORDELETE), true);
         } else {
             $this->getStatus()->set(Sitengine_Env::STATUS_OKDELETE, $this->getTranslate()->translate(Sitengine_Env::STATUS_OKDELETE), false);
         }
         $this->getStatus()->save();
         # avoid double submits
         $path = array(Sitengine_Env::PARAM_ANCESTORID => $this->getEntity()->getGreatAncestorSlug(), Sitengine_Env::PARAM_ID => $this->getEntity()->getAncestorId());
         $route = $this->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Frontend_Front::ROUTE_BLOGS_POSTS_SHARP);
         $uri = $this->getRequest()->getBasePath() . '/' . $route->assemble($path, true);
         $this->getResponse()->setRedirect($uri);
         $this->getResponse()->sendResponse();
     } catch (Exception $exception) {
         throw $this->_prepareErrorHandler($exception);
     }
 }
コード例 #6
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 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);
     }
 }
コード例 #7
0
ファイル: Controller.php プロジェクト: sitengine/sitengine
 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);
     }
 }