diff options
Diffstat (limited to 'apps/files_external/lib/Controller')
4 files changed, 31 insertions, 30 deletions
diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php index cb785695647..cd78a48b648 100644 --- a/apps/files_external/lib/Controller/GlobalStoragesController.php +++ b/apps/files_external/lib/Controller/GlobalStoragesController.php @@ -28,6 +28,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\DataResponse; @@ -42,36 +43,26 @@ use Psr\Log\LoggerInterface; * Global storages controller */ class GlobalStoragesController extends StoragesController { - /** - * Creates a new global storages controller. - * - * @param string $AppName application name - * @param IRequest $request request object - * @param IL10N $l10n l10n service - * @param GlobalStoragesService $globalStoragesService storage service - * @param LoggerInterface $logger - * @param IUserSession $userSession - * @param IGroupManager $groupManager - * @param IConfig $config - */ public function __construct( - $AppName, + string $appName, IRequest $request, IL10N $l10n, GlobalStoragesService $globalStoragesService, LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, + BackendService $backendService, IConfig $config ) { parent::__construct( - $AppName, + $appName, $request, $l10n, $globalStoragesService, $logger, $userSession, $groupManager, + $backendService, $config ); } diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php index ead6aa9663a..7c238a6d5d9 100644 --- a/apps/files_external/lib/Controller/StoragesController.php +++ b/apps/files_external/lib/Controller/StoragesController.php @@ -34,6 +34,7 @@ use OCA\Files_External\Lib\DefinitionParameter; 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; @@ -50,26 +51,18 @@ use Psr\Log\LoggerInterface; * Base class for storages controllers */ abstract class StoragesController extends Controller { - /** - * Creates a new storages controller. - * - * @param string $AppName application name - * @param IRequest $request request object - * @param IL10N $l10n l10n service - * @param StoragesService $storagesService storage service - * @param LoggerInterface $logger - */ public function __construct( - $AppName, + string $appName, IRequest $request, protected IL10N $l10n, protected StoragesService $service, protected LoggerInterface $logger, protected IUserSession $userSession, protected IGroupManager $groupManager, + protected BackendService $backendService, protected IConfig $config ) { - parent::__construct($AppName, $request); + parent::__construct($appName, $request); } /** @@ -118,7 +111,7 @@ abstract class StoragesController extends Controller { $priority ); } catch (\InvalidArgumentException $e) { - $this->logger->error($e->getMessage(), ['exception' => $e]); + $this->logger->warning('Invalid backend or authentication mechanism class', ['exception' => $e]); return new DataResponse( [ 'message' => $this->l10n->t('Invalid backend or authentication mechanism class') diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php index ba15afb2bdf..ce73282b216 100644 --- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php +++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php @@ -33,6 +33,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\DataResponse; @@ -59,23 +60,25 @@ class UserGlobalStoragesController extends StoragesController { * @param IGroupManager $groupManager */ public function __construct( - $AppName, + string $appName, IRequest $request, IL10N $l10n, UserGlobalStoragesService $userGlobalStoragesService, LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, + BackendService $backendService, IConfig $config ) { parent::__construct( - $AppName, + $appName, $request, $l10n, $userGlobalStoragesService, $logger, $userSession, $groupManager, + $backendService, $config ); } diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php index 7c141afcb30..0f7b5c178d9 100644 --- a/apps/files_external/lib/Controller/UserStoragesController.php +++ b/apps/files_external/lib/Controller/UserStoragesController.php @@ -32,6 +32,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\DataResponse; @@ -58,23 +59,25 @@ class UserStoragesController extends StoragesController { * @param IGroupManager $groupManager */ public function __construct( - $AppName, + string $appName, IRequest $request, IL10N $l10n, UserStoragesService $userStoragesService, LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, + BackendService $backendService, IConfig $config ) { parent::__construct( - $AppName, + $appName, $request, $l10n, $userStoragesService, $logger, $userSession, $groupManager, + $backendService, $config ); } @@ -232,6 +235,17 @@ class UserStoragesController extends StoragesController { * {@inheritdoc} */ public function destroy($id) { + if (!$this->backendService->isUserUnmountingAllowed()) { + return new DataResponse( + [ + 'message' => $this->l10n->t( + 'Insufficient right to disconnect this storage' + ) + ], + Http::STATUS_NOT_FOUND + ); + } + return parent::destroy($id); } } |