зеркало из https://github.com/nextcloud/server.git
Make the OCS endpoint handle the new OCS AppFramework routes
This commit is contained in:
Родитель
94cd83ca00
Коммит
1caceea6c0
|
@ -905,7 +905,7 @@ class OC {
|
|||
* @param OCP\IRequest $request
|
||||
* @return boolean
|
||||
*/
|
||||
private static function handleLogin(OCP\IRequest $request) {
|
||||
static function handleLogin(OCP\IRequest $request) {
|
||||
$userSession = self::$server->getUserSession();
|
||||
if (OC_User::handleApacheAuth()) {
|
||||
return true;
|
||||
|
|
23
ocs/v1.php
23
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();
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче