123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- header('Access-Control-Allow-Origin: *');
- header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
- header('Access-Control-Allow-Headers: X-Requested-With');
- header('Access-Control-Max-Age: 86400');
- // includes
- $includePath = array();
- $includePath[] = '../arav_up_inclu';
- $includePath[] = get_include_path();
- $includePath = implode(PATH_SEPARATOR,$includePath);
- set_include_path($includePath);
- // carica configurazione
- require '../arav_up_confs.php';
- require_once('auth.php');
- require_once('report.php');
- // presenta auth
- if (!isset($_SERVER['PHP_AUTH_USER'])) {
- prompt_auth();
- // report(1,"PHP_AUTH_USER not set, exiting"); //Lo vogliamo davvero loggare?
- exit;
- }
- $authstate = do_local_auth($_SERVER['PHP_AUTH_USER'], hash("sha256",$_SERVER['PHP_AUTH_PW']));
- // report(1,"userid : ".$authstate["userid"]);
- // report(1,"dir : ".$authstate["dir"]);
- if ($authstate["esito"] != "AUTH_OK") {
- // // es: is_inside_dir($object, $authstate["dir"]);
- prompt_auth();
- // report(1,"esito not AUTH_OK, exiting");
- exit;
- }
- else {
- // registra in sessione i dati dell'utente //FIXME lo facciamo qui o dentro la funzione do_local_auth?
- $_SESSION['authstate'] = $authstate;
- }
- // -----------------
- // I am not afraid of errors:
- error_reporting(E_ALL);
- // Parse the request, and run:
- $request = parseRequest();
- $request->run();
- // Print the headers and the body:
- $request->writeHeader();
- $request->writeBody();
- // This method parses the incoming request:
- function parseRequest() {
- $request = array('method' => 'GET', 'path' => null, 'extra' => Array());
- $request['method'] = $_SERVER['REQUEST_METHOD'];
- //Parsing query string:
- parse_str($_SERVER['QUERY_STRING'], $request['queryString']);
- //Processing the path:
- if(($pos = strpos($_SERVER['REQUEST_URI'], '?')) !== false)
- $path = substr($_SERVER['REQUEST_URI'], 0, $pos);
- else
- $path = $_SERVER['REQUEST_URI'];
- if(strpos($_SERVER['SCRIPT_NAME'], 'index.php') !== false) {
- $dirname = dirname($_SERVER['SCRIPT_NAME']);
- $path = substr($path, strlen($dirname) + 1);
- }
- //Remove empty values from split $path array
- $split = array_filter(explode('/', $path));
- $request['path'] = isset($split[0]) ? $split[0] : null;
- $request['extra'] = array_slice($split, 1);
- $requestHandler = null;
- // Looking for the best function for this request:
- switch ($request['path']) {
- case 'upload':
- require_once './requests/requestPostUpload.php';
- $requestHandler = new arkiwiRequestPostUpload($request);
- break;
- case 'listmetadata':
- require_once './requests/requestGetListMetadata.php';
- $requestHandler = new arkiwiRequestGetListMetadata($request);
- break;
- case 'modifymetadata':
- require_once './requests/requestPostModifyMetadata.php';
- $requestHandler = new arkiwiRequestPostModifyMetadata($request);
- break;
- case 'createdirectory':
- require_once './requests/requestPostCreateDirectory.php';
- $requestHandler = new arkiwiRequestPostCreateDirectory($request);
- break;
- /* case 'removemetadata':
- require_once './requests/requestPostRemoveMetadata.php';
- $requestHandler = new arkiwiRequestPostRemoveMetadata($request);
- break;*/
- default:
- require_once './requests/requestError.php';
- $requestHandler = new arkiwiRequestError($request);
- break;
- }
- return $requestHandler;
- }
|