/**
  * 
  */
 public function setDirectAction()
 {
     $am = AccountManager::getInstance();
     if (!$am->isLogged()) {
         return JsonResponseBuilder::failure();
     }
     $action = $this->getRequestVariable('action');
     $patchID = $this->getRequestVariable('patchID');
     $idDB = $this->getRequestVariable('idDB');
     if ($action == 'putIntoMyPatches') {
         $r = RepositoryManager::getInstance()->moveToPatch($patchID, $idDB);
         if ($r === true) {
             return JsonResponseBuilder::success();
         } else {
             return JsonResponseBuilder::failure(array('err' => $r));
         }
     }
     if ($action == 'deleteThisChange') {
         $r = RepositoryManager::getInstance()->clearLocalChangeByModifiedID($idDB);
         if (is_array($r)) {
             return JsonResponseBuilder::success();
         } else {
             return JsonResponseBuilder::failure(array('err' => $r));
         }
     }
 }
예제 #2
0
<?php

/**
 * Ext JS controller file
 */
session_start();
error_reporting(E_ALL);
set_time_limit(0);
require_once "./ExtJsController.php";
require_once "./JsonResponseBuilder.php";
$controller = new ExtJsController(array_merge($_GET, $_POST));
$method = str_replace('-', '_', $controller->getRequestVariable('task'));
if (isset($_SESSION['csrfToken']) && $controller->getRequestVariable('csrfToken') !== $_SESSION['csrfToken']) {
    $response = JsonResponseBuilder::failure(array('msg' => 'CSRF token missing or invalid'));
} else {
    if (method_exists($controller, $method)) {
        $response = $controller->{$method}();
    } else {
        $response = JsonResponseBuilder::failure(array('msg' => sprintf('Unknown controller action: %s', $method)));
    }
}
// Place here all method who already send hers headers
if (in_array($method, array('getImageContent', 'downloadPatch'))) {
    echo $response;
    exit;
}
header('Content-type: text/plain; charset=utf-8');
header('X-Content-Type-Options: nosniff');
header('Content-Length:' . strlen($response));
echo $response;
exit;