summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/Lib
diff options
context:
space:
mode:
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.php48
-rw-r--r--apps/files_external/lib/Lib/Backend/Swift.php5
-rw-r--r--apps/files_external/lib/Lib/Storage/Swift.php12
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();