diff options
Diffstat (limited to 'apps/files_external/lib/Lib')
-rw-r--r-- | apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php (renamed from apps/files_external/lib/Lib/Auth/OpenStack/OpenStack.php) | 4 | ||||
-rw-r--r-- | apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV3.php | 48 | ||||
-rw-r--r-- | apps/files_external/lib/Lib/Backend/Swift.php | 5 | ||||
-rw-r--r-- | apps/files_external/lib/Lib/Storage/Swift.php | 12 |
4 files changed, 63 insertions, 6 deletions
diff --git a/apps/files_external/lib/Lib/Auth/OpenStack/OpenStack.php b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php index ca1e0a08ae9..f25918561f8 100644 --- a/apps/files_external/lib/Lib/Auth/OpenStack/OpenStack.php +++ b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV2.php @@ -29,13 +29,13 @@ use \OCA\Files_External\Lib\Auth\AuthMechanism; /** * OpenStack Keystone authentication */ -class OpenStack extends AuthMechanism { +class OpenStackV2 extends AuthMechanism { public function __construct(IL10N $l) { $this ->setIdentifier('openstack::openstack') ->setScheme(self::SCHEME_OPENSTACK) - ->setText($l->t('OpenStack')) + ->setText($l->t('OpenStack v2')) ->addParameters([ new DefinitionParameter('user', $l->t('Username')), (new DefinitionParameter('password', $l->t('Password'))) diff --git a/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV3.php b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV3.php new file mode 100644 index 00000000000..adf6b8012a0 --- /dev/null +++ b/apps/files_external/lib/Lib/Auth/OpenStack/OpenStackV3.php @@ -0,0 +1,48 @@ +<?php +declare(strict_types=1); +/** + * @copyright Copyright (c) 2018 Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_External\Lib\Auth\OpenStack; + +use \OCP\IL10N; +use \OCA\Files_External\Lib\DefinitionParameter; +use \OCA\Files_External\Lib\Auth\AuthMechanism; + +/** + * OpenStack Keystone authentication + */ +class OpenStackV3 extends AuthMechanism { + + public function __construct(IL10N $l) { + $this + ->setIdentifier('openstack::openstackv3') + ->setScheme(self::SCHEME_OPENSTACK) + ->setText($l->t('OpenStack v3')) + ->addParameters([ + new DefinitionParameter('userid', $l->t('User Id')), + (new DefinitionParameter('password', $l->t('Password'))) + ->setType(DefinitionParameter::VALUE_PASSWORD), + new DefinitionParameter('url', $l->t('Identity endpoint URL')) + ]) + ; + } + +} diff --git a/apps/files_external/lib/Lib/Backend/Swift.php b/apps/files_external/lib/Lib/Backend/Swift.php index f2b694362f4..72fc236bcdc 100644 --- a/apps/files_external/lib/Lib/Backend/Swift.php +++ b/apps/files_external/lib/Lib/Backend/Swift.php @@ -25,7 +25,8 @@ namespace OCA\Files_External\Lib\Backend; use \OCP\IL10N; use \OCA\Files_External\Lib\DefinitionParameter; use \OCA\Files_External\Lib\Auth\AuthMechanism; -use \OCA\Files_External\Lib\Auth\OpenStack\OpenStack; +use \OCA\Files_External\Service\BackendService; +use \OCA\Files_External\Lib\Auth\OpenStack\OpenStackV2; use \OCA\Files_External\Lib\Auth\OpenStack\Rackspace; use \OCA\Files_External\Lib\LegacyDependencyCheckPolyfill; @@ -33,7 +34,7 @@ class Swift extends Backend { use LegacyDependencyCheckPolyfill; - public function __construct(IL10N $l, OpenStack $openstackAuth, Rackspace $rackspaceAuth) { + public function __construct(IL10N $l, OpenStackV2 $openstackAuth, Rackspace $rackspaceAuth) { $this ->setIdentifier('swift') ->addIdentifierAlias('\OC\Files\Storage\Swift') // legacy compat diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index 051c65350d5..2f8207cac4f 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -156,13 +156,14 @@ class Swift extends \OC\Files\Storage\Common { public function __construct($params) { if ((empty($params['key']) and empty($params['password'])) - or empty($params['user']) or empty($params['bucket']) + or (empty($params['user']) && empty($params['userid'])) or empty($params['bucket']) or empty($params['region']) ) { throw new StorageBadConfigException("API Key or password, Username, Bucket and Region have to be configured."); } - $this->id = 'swift::' . $params['user'] . md5($params['bucket']); + $user = isset($params['user']) ? $params['user'] : $params['userid']; + $this->id = 'swift::' . $user . md5($params['bucket']); $bucketUrl = new Uri($params['bucket']); if ($bucketUrl->getHost()) { @@ -180,6 +181,13 @@ class Swift extends \OC\Files\Storage\Common { $params['autocreate'] = true; + if (isset($params['userid'])) { + $params['user'] = [ + 'id' => $params['userid'], + 'password' => $params['password'] + ]; + } + $this->params = $params; // FIXME: private class... $this->objectCache = new \OC\Cache\CappedMemoryCache(); |