From da9aac26a30de4e9023840421be631d3ea894592 Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Tue, 16 Jul 2024 08:29:44 +0200 Subject: [PATCH] fix(dav): drop unwanted RemoteException class Signed-off-by: skjnldsv --- public.php | 18 ++++++++++++------ remote.php | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/public.php b/public.php index 2bf710c72fcb6..f422a80deee50 100644 --- a/public.php +++ b/public.php @@ -58,30 +58,33 @@ function resolveService(string $service): string { // this policy with a softer one if debug mode is enabled. header("Content-Security-Policy: default-src 'none';"); + // Check if Nextcloud is in maintenance mode if (\OCP\Util::needUpgrade()) { // since the behavior of apps or remotes are unpredictable during // an upgrade, return a 503 directly - throw new RemoteException('Service unavailable', 503); + throw new \Exception('Service unavailable', 503); } $request = \OC::$server->getRequest(); $pathInfo = $request->getPathInfo(); if ($pathInfo === false || $pathInfo === '') { - throw new RemoteException('Path not found', 404); + throw new \Exception('Path not found', 404); } + + // Extract the service from the path if (!$pos = strpos($pathInfo, '/', 1)) { $pos = strlen($pathInfo); } $service = substr($pathInfo, 1, $pos - 1); + // Resolve the service to a file $file = resolveService($service); - if (!$file) { - throw new RemoteException('Path not found', 404); + throw new \Exception('Path not found', 404); } + // Extract the app from the service file $file = ltrim($file, '/'); - $parts = explode('/', $file, 2); $app = $parts[0]; @@ -91,9 +94,12 @@ function resolveService(string $service): string { OC_App::loadApps(['extended_authentication']); OC_App::loadApps(['filesystem', 'logging']); + // Check if the app is enabled if (!\OC::$server->getAppManager()->isInstalled($app)) { - throw new RemoteException('App not installed: ' . $app); + throw new \Exception('App not installed: ' . $app); } + + // Load the app OC_App::loadApp($app); OC_User::setIncognitoMode(true); diff --git a/remote.php b/remote.php index 03575627dc504..773ae0adc0ef6 100644 --- a/remote.php +++ b/remote.php @@ -43,7 +43,7 @@ * Dummy exception class to be use locally to identify certain conditions * Will not be logged to avoid DoS */ -class RemoteException extends Exception { +class RemoteException extends \Exception { } /**