From 1caceea6c0fbd1dd9ccb24812f76c79e008c1dc1 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 17 May 2016 10:13:02 +0200 Subject: Make the OCS endpoint handle the new OCS AppFramework routes --- ocs/v1.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'ocs') diff --git a/ocs/v1.php b/ocs/v1.php index bbc2adf39b6..fe7c9a2441d 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -42,6 +42,10 @@ if (\OCP\Util::needUpgrade() use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\Exception\MethodNotAllowedException; +/* + * Try old routes first + * We first try the old routes since the appframework triggers more login stuff. + */ try { OC_App::loadApps(['session']); OC_App::loadApps(['authentication']); @@ -52,6 +56,22 @@ try { \OC::$server->getL10NFactory()->setLanguageFromRequest(); OC::$server->getRouter()->match('/ocs'.\OC::$server->getRequest()->getRawPathInfo()); + return; +} catch (ResourceNotFoundException $e) { + // Fall through the not found +} catch (MethodNotAllowedException $e) { + OC_API::setContentType(); + OC_Response::setStatus(405); +} catch (\OC\OCS\Exception $ex) { + OC_API::respond($ex->getResult(), OC_API::requestedFormat()); +} + +/* + * Try the appframework routes + */ +try { + OC::handleLogin(\OC::$server->getRequest()); + OC::$server->getRouter()->match('/ocsapp'.\OC::$server->getRequest()->getRawPathInfo()); } catch (ResourceNotFoundException $e) { OC_API::setContentType(); OC_OCS::notFound(); @@ -60,5 +80,8 @@ try { OC_Response::setStatus(405); } catch (\OC\OCS\Exception $ex) { OC_API::respond($ex->getResult(), OC_API::requestedFormat()); +} catch (\Exception $e) { + OC_API::setContentType(); + OC_OCS::notFound(); } -- cgit v1.2.3