index.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
  4. header('Access-Control-Allow-Headers: X-Requested-With');
  5. header('Access-Control-Max-Age: 86400');
  6. // includes
  7. $includePath = array();
  8. $includePath[] = '../arav_up_inclu';
  9. $includePath[] = get_include_path();
  10. $includePath = implode(PATH_SEPARATOR,$includePath);
  11. set_include_path($includePath);
  12. // carica configurazione
  13. require '../arav_up_confs.php';
  14. require_once('auth.php');
  15. require_once('report.php');
  16. // presenta auth
  17. if (!isset($_SERVER['PHP_AUTH_USER'])) {
  18. prompt_auth();
  19. // report(1,"PHP_AUTH_USER not set, exiting"); //Lo vogliamo davvero loggare?
  20. exit;
  21. }
  22. $authstate = do_local_auth($_SERVER['PHP_AUTH_USER'], hash("sha256",$_SERVER['PHP_AUTH_PW']));
  23. // report(1,"userid : ".$authstate["userid"]);
  24. // report(1,"dir : ".$authstate["dir"]);
  25. if ($authstate["esito"] != "AUTH_OK") {
  26. // // es: is_inside_dir($object, $authstate["dir"]);
  27. prompt_auth();
  28. // report(1,"esito not AUTH_OK, exiting");
  29. exit;
  30. }
  31. else {
  32. // registra in sessione i dati dell'utente //FIXME lo facciamo qui o dentro la funzione do_local_auth?
  33. $_SESSION['authstate'] = $authstate;
  34. }
  35. // -----------------
  36. // I am not afraid of errors:
  37. error_reporting(E_ALL);
  38. // Parse the request, and run:
  39. $request = parseRequest();
  40. $request->run();
  41. // Print the headers and the body:
  42. $request->writeHeader();
  43. $request->writeBody();
  44. // This method parses the incoming request:
  45. function parseRequest() {
  46. $request = array('method' => 'GET', 'path' => null, 'extra' => Array());
  47. $request['method'] = $_SERVER['REQUEST_METHOD'];
  48. //Parsing query string:
  49. parse_str($_SERVER['QUERY_STRING'], $request['queryString']);
  50. //Processing the path:
  51. if(($pos = strpos($_SERVER['REQUEST_URI'], '?')) !== false)
  52. $path = substr($_SERVER['REQUEST_URI'], 0, $pos);
  53. else
  54. $path = $_SERVER['REQUEST_URI'];
  55. if(strpos($_SERVER['SCRIPT_NAME'], 'index.php') !== false) {
  56. $dirname = dirname($_SERVER['SCRIPT_NAME']);
  57. $path = substr($path, strlen($dirname) + 1);
  58. }
  59. //Remove empty values from split $path array
  60. $split = array_filter(explode('/', $path));
  61. $request['path'] = isset($split[0]) ? $split[0] : null;
  62. $request['extra'] = array_slice($split, 1);
  63. $requestHandler = null;
  64. // Looking for the best function for this request:
  65. switch ($request['path']) {
  66. case 'upload':
  67. require_once './requests/requestPostUpload.php';
  68. $requestHandler = new arkiwiRequestPostUpload($request);
  69. break;
  70. case 'listmetadata':
  71. require_once './requests/requestGetListMetadata.php';
  72. $requestHandler = new arkiwiRequestGetListMetadata($request);
  73. break;
  74. case 'modifymetadata':
  75. require_once './requests/requestPostModifyMetadata.php';
  76. $requestHandler = new arkiwiRequestPostModifyMetadata($request);
  77. break;
  78. case 'createdirectory':
  79. require_once './requests/requestPostCreateDirectory.php';
  80. $requestHandler = new arkiwiRequestPostCreateDirectory($request);
  81. break;
  82. /* case 'removemetadata':
  83. require_once './requests/requestPostRemoveMetadata.php';
  84. $requestHandler = new arkiwiRequestPostRemoveMetadata($request);
  85. break;*/
  86. default:
  87. require_once './requests/requestError.php';
  88. $requestHandler = new arkiwiRequestError($request);
  89. break;
  90. }
  91. return $requestHandler;
  92. }