From 91eee32499935cd2f2ac4fe6e6e740a0df3d773f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 4 May 2026 18:35:24 +0200 Subject: [PATCH] fix: improve check if external storage backend is local Signed-off-by: Robin Appelman --- .../lib/Controller/GlobalStoragesController.php | 7 +++++-- apps/files_external/lib/Controller/StoragesController.php | 7 +++++-- .../lib/Controller/UserGlobalStoragesController.php | 7 +++++-- .../lib/Controller/UserStoragesController.php | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php index d405ef65bae..322f0599fbc 100644 --- a/apps/files_external/lib/Controller/GlobalStoragesController.php +++ b/apps/files_external/lib/Controller/GlobalStoragesController.php @@ -8,6 +8,7 @@ namespace OCA\Files_External\Controller; use OCA\Files_External\NotFoundException; +use OCA\Files_External\Service\BackendService; use OCA\Files_External\Service\GlobalStoragesService; use OCP\AppFramework\Http; use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; @@ -43,7 +44,8 @@ class GlobalStoragesController extends StoragesController { LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, + BackendService $backendService ) { parent::__construct( $AppName, @@ -53,7 +55,8 @@ class GlobalStoragesController extends StoragesController { $logger, $userSession, $groupManager, - $config + $config, + $backendService ); } diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php index 1e7c05d2273..e37a683b910 100644 --- a/apps/files_external/lib/Controller/StoragesController.php +++ b/apps/files_external/lib/Controller/StoragesController.php @@ -9,9 +9,11 @@ namespace OCA\Files_External\Controller; use OCA\Files_External\Lib\Auth\AuthMechanism; use OCA\Files_External\Lib\Backend\Backend; +use OCA\Files_External\Lib\Backend\Local; use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException; use OCA\Files_External\Lib\StorageConfig; use OCA\Files_External\NotFoundException; +use OCA\Files_External\Service\BackendService; use OCA\Files_External\Service\StoragesService; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; @@ -46,7 +48,8 @@ abstract class StoragesController extends Controller { protected LoggerInterface $logger, protected IUserSession $userSession, protected IGroupManager $groupManager, - protected IConfig $config + protected IConfig $config, + private BackendService $backendService ) { parent::__construct($AppName, $request); } @@ -76,7 +79,7 @@ abstract class StoragesController extends Controller { $priority = null ) { $canCreateNewLocalStorage = $this->config->getSystemValue('files_external_allow_create_new_local', true); - if (!$canCreateNewLocalStorage && $backend === 'local') { + if (!$canCreateNewLocalStorage && $this->backendService->getBackend($backend) instanceof Local) { return new DataResponse( [ 'message' => $this->l10n->t('Forbidden to manage local mounts') diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php index ec6a25ecc44..c6f07289893 100644 --- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php +++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php @@ -14,6 +14,7 @@ use OCA\Files_External\Lib\Backend\Backend; use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException; use OCA\Files_External\Lib\StorageConfig; use OCA\Files_External\NotFoundException; +use OCA\Files_External\Service\BackendService; use OCA\Files_External\Service\UserGlobalStoragesService; use OCP\AppFramework\Http; use OCP\AppFramework\Http\Attribute\NoAdminRequired; @@ -49,7 +50,8 @@ class UserGlobalStoragesController extends StoragesController { LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, + BackendService $backendService ) { parent::__construct( $AppName, @@ -59,7 +61,8 @@ class UserGlobalStoragesController extends StoragesController { $logger, $userSession, $groupManager, - $config + $config, + $backendService, ); } diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php index 115496c3efb..30e27b40fa4 100644 --- a/apps/files_external/lib/Controller/UserStoragesController.php +++ b/apps/files_external/lib/Controller/UserStoragesController.php @@ -11,6 +11,7 @@ use OCA\Files_External\Lib\Auth\AuthMechanism; use OCA\Files_External\Lib\Backend\Backend; use OCA\Files_External\Lib\StorageConfig; use OCA\Files_External\NotFoundException; +use OCA\Files_External\Service\BackendService; use OCA\Files_External\Service\UserStoragesService; use OCP\AppFramework\Http; use OCP\AppFramework\Http\Attribute\NoAdminRequired; @@ -46,7 +47,8 @@ class UserStoragesController extends StoragesController { LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, + BackendService $backendService ) { parent::__construct( $AppName, @@ -56,7 +58,8 @@ class UserStoragesController extends StoragesController { $logger, $userSession, $groupManager, - $config + $config, + $backendService, ); }