From ab8c738b8d6de6ff984ec9d2397b92020a5c27c4 Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Wed, 12 Aug 2015 22:13:27 +0100 Subject: [PATCH] Migrate SMB external storage to new API --- apps/files_external/appinfo/app.php | 13 ------ apps/files_external/appinfo/application.php | 6 +++ apps/files_external/lib/backend/smb.php | 52 +++++++++++++++++++++ 3 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 apps/files_external/lib/backend/smb.php diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 576a8be45c2..8df0f3054c3 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -144,19 +144,6 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\Swift', [ if (!OC_Util::runningOnWindows()) { - OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB', [ - 'backend' => 'SMB / CIFS', - 'priority' => 100, - 'configuration' => [ - 'host' => (string)$l->t('Host'), - 'user' => (string)$l->t('Username'), - 'password' => '*'.$l->t('Password'), - 'share' => (string)$l->t('Share'), - 'root' => '&'.$l->t('Remote subfolder'), - ], - 'has_dependencies' => true, - ]); - OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB_OC', [ 'backend' => (string)$l->t('SMB / CIFS using OC login'), 'priority' => 90, diff --git a/apps/files_external/appinfo/application.php b/apps/files_external/appinfo/application.php index 0e0c2f3e265..d930e8fc137 100644 --- a/apps/files_external/appinfo/application.php +++ b/apps/files_external/appinfo/application.php @@ -63,6 +63,12 @@ class Application extends App { $container->query('OCA\Files_External\Lib\Backend\Local'), $container->query('OCA\Files_External\Lib\Backend\FTP'), ]); + + if (!\OC_Util::runningOnWindows()) { + $service->registerBackends([ + $container->query('OCA\Files_External\Lib\Backend\SMB'), + ]); + } } /** diff --git a/apps/files_external/lib/backend/smb.php b/apps/files_external/lib/backend/smb.php new file mode 100644 index 00000000000..3d950a80c31 --- /dev/null +++ b/apps/files_external/lib/backend/smb.php @@ -0,0 +1,52 @@ + + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OCA\Files_External\Lib\Backend; + +use \OCP\IL10N; +use \OCA\Files_External\Lib\Backend\Backend; +use \OCA\Files_External\Lib\DefinitionParameter; +use \OCA\Files_External\Lib\Auth\AuthMechanism; +use \OCA\Files_External\Service\BackendService; + +use \OCA\Files_External\Lib\Auth\Password\Password; + +class SMB extends Backend { + + public function __construct(IL10N $l, Password $legacyAuth) { + $this + ->setIdentifier('smb') + ->addIdentifierAlias('\OC\Files\Storage\SMB') // legacy compat + ->setStorageClass('\OC\Files\Storage\SMB') + ->setText($l->t('SMB / CIFS')) + ->addParameters([ + (new DefinitionParameter('host', $l->t('Host'))), + (new DefinitionParameter('share', $l->t('Share'))), + (new DefinitionParameter('root', $l->t('Remote subfolder'))) + ->setFlag(DefinitionParameter::FLAG_OPTIONAL), + ]) + ->setDependencyCheck('\OC\Files\Storage\SMB::checkDependencies') + ->addAuthScheme(AuthMechanism::SCHEME_PASSWORD) + ->setLegacyAuthMechanism($legacyAuth) + ; + } + +}