aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-02-09 15:33:47 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2016-02-09 15:33:47 +0100
commit1199b539f2813d127195bf1b63e81fcfe8dab19b (patch)
treecf3e4ed8e040027e351063a42e31c428d8744ff2
parent232bb75329c251671d7ece910148deff5cf47b07 (diff)
parent76d9586339d59f7e2aaa2aecce45df7e324e8532 (diff)
downloadnextcloud-server-1199b539f2813d127195bf1b63e81fcfe8dab19b.tar.gz
nextcloud-server-1199b539f2813d127195bf1b63e81fcfe8dab19b.zip
Merge pull request #21773 from owncloud/files_external-list-authtype
Show the proper auth identifier when listing mounts as json
-rw-r--r--apps/files_external/command/import.php4
-rw-r--r--apps/files_external/command/listcommand.php2
-rw-r--r--apps/files_external/tests/command/listcommandtest.php69
3 files changed, 72 insertions, 3 deletions
diff --git a/apps/files_external/command/import.php b/apps/files_external/command/import.php
index fe27051359c..28032c207b5 100644
--- a/apps/files_external/command/import.php
+++ b/apps/files_external/command/import.php
@@ -194,8 +194,8 @@ class Import extends Base {
$mount = new StorageConfig($data['mount_id']);
$mount->setMountPoint($data['mount_point']);
$mount->setBackend($this->getBackendByClass($data['storage']));
- $authBackends = $this->backendService->getAuthMechanismsByScheme([$data['authentication_type']]);
- $mount->setAuthMechanism(current($authBackends));
+ $authBackend = $this->backendService->getAuthMechanism($data['authentication_type']);
+ $mount->setAuthMechanism($authBackend);
$mount->setBackendOptions($data['configuration']);
$mount->setMountOptions($data['options']);
$mount->setApplicableUsers(isset($data['applicable_users']) ? $data['applicable_users'] : []);
diff --git a/apps/files_external/command/listcommand.php b/apps/files_external/command/listcommand.php
index c978ae5cfcb..5a0794be4c5 100644
--- a/apps/files_external/command/listcommand.php
+++ b/apps/files_external/command/listcommand.php
@@ -146,7 +146,7 @@ class ListCommand extends Base {
$config->getId(),
$config->getMountPoint(),
$config->getBackend()->getStorageClass(),
- $config->getAuthMechanism()->getScheme(),
+ $config->getAuthMechanism()->getIdentifier(),
$config->getBackendOptions(),
$config->getMountOptions()
];
diff --git a/apps/files_external/tests/command/listcommandtest.php b/apps/files_external/tests/command/listcommandtest.php
new file mode 100644
index 00000000000..338ddb7593e
--- /dev/null
+++ b/apps/files_external/tests/command/listcommandtest.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, 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 <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_External\Tests\Command;
+
+use OCA\Files_External\Command\ListCommand;
+use OCA\Files_External\Lib\Auth\NullMechanism;
+use OCA\Files_External\Lib\Auth\Password\Password;
+use OCA\Files_External\Lib\Auth\Password\UserProvided;
+use OCA\Files_External\Lib\Backend\Local;
+use OCA\Files_external\Lib\StorageConfig;
+use Symfony\Component\Console\Output\BufferedOutput;
+
+class ListCommandTest extends CommandTest {
+ /**
+ * @return \OCA\Files_External\Command\ListCommand|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private function getInstance() {
+ /** @var \OCA\Files_external\Service\GlobalStoragesService|\PHPUnit_Framework_MockObject_MockObject $globalService */
+ $globalService = $this->getMock('\OCA\Files_external\Service\GlobalStoragesService', null, [], '', false);
+ /** @var \OCA\Files_external\Service\UserStoragesService|\PHPUnit_Framework_MockObject_MockObject $userService */
+ $userService = $this->getMock('\OCA\Files_external\Service\UserStoragesService', null, [], '', false);
+ /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject $userManager */
+ $userManager = $this->getMock('\OCP\IUserManager');
+ /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject $userSession */
+ $userSession = $this->getMock('\OCP\IUserSession');
+
+ return new ListCommand($globalService, $userService, $userSession, $userManager);
+ }
+
+ public function testListAuthIdentifier() {
+ $l10n = $this->getMock('\OC_L10N', null, [], '', false);
+ $credentialsManager = $this->getMock('\OCP\Security\ICredentialsManager');
+ $instance = $this->getInstance();
+ $mount1 = new StorageConfig();
+ $mount1->setAuthMechanism(new Password($l10n));
+ $mount1->setBackend(new Local($l10n, new NullMechanism($l10n)));
+ $mount2 = new StorageConfig();
+ $mount2->setAuthMechanism(new UserProvided($l10n, $credentialsManager));
+ $mount2->setBackend(new Local($l10n, new NullMechanism($l10n)));
+ $input = $this->getInput($instance, [], [
+ 'output' => 'json'
+ ]);
+ $output = new BufferedOutput();
+
+ $instance->listMounts('', [$mount1, $mount2], $input, $output);
+ $output = json_decode($output->fetch(), true);
+
+ $this->assertNotEquals($output[0]['authentication_type'], $output[1]['authentication_type']);
+ }
+}