root.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /* Forward root to /status */
  3. $app->get('', function ($request, $response, $args) {
  4. return $response
  5. ->withHeader('Location', '/api/v2/status')
  6. ->withStatus(302);
  7. });
  8. $app->get('/', function ($request, $response, $args) {
  9. return $response
  10. ->withHeader('Location', '/api/v2/status')
  11. ->withStatus(302);
  12. });
  13. $app->get('/status[/]', function ($request, $response, $args) {
  14. /**
  15. * @OA\Get(
  16. * path="/api/v2/status",
  17. * summary="Query Organizr API to perform a Status Check",
  18. * @OA\Response(
  19. * response="200",
  20. * description="Success",
  21. * @OA\JsonContent(ref="#/components/schemas/status"),
  22. * ),
  23. * @OA\Response(response="401",description="Unauthorized")
  24. * )
  25. */
  26. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  27. if ($Organizr->checkRoute($request)) {
  28. $GLOBALS['api']['response']['data'] = $Organizr->status(false);
  29. }
  30. $response->getBody()->write(jsonE($GLOBALS['api']));
  31. return $response
  32. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  33. ->withStatus($GLOBALS['responseCode']);
  34. });
  35. $app->any('/auth-[{group}[/]]', function ($request, $response, $args) {
  36. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  37. $_GET['group'] = $args['group'] ?? 0;
  38. $Organizr->auth();
  39. $response->getBody()->write(jsonE($GLOBALS['api']));
  40. return $response
  41. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  42. ->withStatus($GLOBALS['responseCode']);
  43. });
  44. $app->any('/auth[/[{group}[/{type}[/{ips}]]]]', function ($request, $response, $args) {
  45. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  46. $_GET['group'] = $args['group'] ?? 0;
  47. $_GET['type'] = $args['type'] ?? 'deny';
  48. $_GET['ips'] = $args['ips'] ?? '192.0.0.0';
  49. $Organizr->auth();
  50. $response->getBody()->write(jsonE($GLOBALS['api']));
  51. return $response
  52. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  53. ->withStatus($GLOBALS['responseCode']);
  54. });
  55. $app->any('/organizr-auth[/[{group}[/{type}[/{ips}]]]]', function ($request, $response, $args) {
  56. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  57. $_GET['group'] = $args['group'] ?? 0;
  58. $_GET['type'] = $args['type'] ?? 'deny';
  59. $_GET['ips'] = $args['ips'] ?? '192.0.0.0';
  60. $Organizr->auth();
  61. $response->getBody()->write(jsonE($GLOBALS['api']));
  62. return $response
  63. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  64. ->withStatus($GLOBALS['responseCode']);
  65. });
  66. $app->get('/launch[/]', function ($request, $response, $args) {
  67. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  68. $tabInfo = $Organizr->getUserTabsAndCategories();
  69. $GLOBALS['api']['response']['data']['categories'] = ($tabInfo['categories']) ?? false;
  70. $GLOBALS['api']['response']['data']['tabs'] = ($tabInfo['tabs']) ?? false;
  71. $GLOBALS['api']['response']['data']['user'] = $Organizr->user;
  72. $GLOBALS['api']['response']['data']['branch'] = $Organizr->config['branch'];
  73. $GLOBALS['api']['response']['data']['theme'] = $Organizr->config['theme'];
  74. $GLOBALS['api']['response']['data']['style'] = $Organizr->config['style'];
  75. $GLOBALS['api']['response']['data']['version'] = $Organizr->version;
  76. $GLOBALS['api']['response']['data']['settings'] = $Organizr->organizrSpecialSettings();
  77. $GLOBALS['api']['response']['data']['plugins'] = $Organizr->pluginGlobalList();
  78. $GLOBALS['api']['response']['data']['appearance'] = $Organizr->loadAppearance();
  79. $GLOBALS['api']['response']['data']['status'] = $Organizr->launch();
  80. $GLOBALS['api']['response']['data']['sso'] = $Organizr->ssoCookies();
  81. $GLOBALS['api']['response']['data']['warnings'] = $Organizr->warnings;
  82. $response->getBody()->write(jsonE($GLOBALS['api']));
  83. return $response
  84. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  85. ->withStatus($GLOBALS['responseCode']);
  86. });