summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2016-02-24 19:49:03 +0100
committerLukas Reschke <lukas@owncloud.com>2016-02-24 19:58:41 +0100
commitdb2ddb54413831adef41fe5e233481a2d546731d (patch)
treece82ede1b4d80999acc57b23976005f6c4869991 /apps/files_external
parentbf4a0385351f4eb8757a31b4253803211d6cdec7 (diff)
downloadnextcloud-server-db2ddb54413831adef41fe5e233481a2d546731d.tar.gz
nextcloud-server-db2ddb54413831adef41fe5e233481a2d546731d.zip
Properly cast type
The current logic is checking whether: 1. The returned value is a boolen 2. The returned value is a string and then matches for "true" Since the config is now written to the database the data is now a string with the value "1" if HTTPS is set to true. Effectively this option was thus always disabled at the moment, falling back to plain HTTP. This change casts the data to a boolean if it is defined as boolean. Fixes https://github.com/owncloud/core/issues/22605 Fixes https://github.com/owncloud/core/issues/22016
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/js/settings.js3
-rw-r--r--apps/files_external/lib/storageconfig.php14
-rw-r--r--apps/files_external/tests/storageconfigtest.php34
3 files changed, 40 insertions, 11 deletions
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 26df203091e..cf4b27a7eab 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -859,6 +859,9 @@ MountConfigListView.prototype = _.extend({
var input = $(this);
var val = storageConfig.backendOptions[input.data('parameter')];
if (val !== undefined) {
+ if(input.is('input:checkbox')) {
+ input.prop('checked', val);
+ }
input.val(storageConfig.backendOptions[input.data('parameter')]);
highlightInput(input);
}
diff --git a/apps/files_external/lib/storageconfig.php b/apps/files_external/lib/storageconfig.php
index 6f44b25a2e6..f853da53d15 100644
--- a/apps/files_external/lib/storageconfig.php
+++ b/apps/files_external/lib/storageconfig.php
@@ -210,6 +210,20 @@ class StorageConfig implements \JsonSerializable {
* @param array $backendOptions backend options
*/
public function setBackendOptions($backendOptions) {
+ if($this->getBackend() instanceof Backend) {
+ $parameters = $this->getBackend()->getParameters();
+ foreach($backendOptions as $key => $value) {
+ if(isset($parameters[$key])) {
+ switch ($parameters[$key]->getType()) {
+ case \OCA\Files_External\Lib\DefinitionParameter::VALUE_BOOLEAN:
+ $value = (bool)$value;
+ break;
+ }
+ $backendOptions[$key] = $value;
+ }
+ }
+ }
+
$this->backendOptions = $backendOptions;
}
diff --git a/apps/files_external/tests/storageconfigtest.php b/apps/files_external/tests/storageconfigtest.php
index d7f8d2b4d7d..60ec14dd080 100644
--- a/apps/files_external/tests/storageconfigtest.php
+++ b/apps/files_external/tests/storageconfigtest.php
@@ -30,6 +30,17 @@ class StorageConfigTest extends \Test\TestCase {
$backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend')
->disableOriginalConstructor()
->getMock();
+ $parameter = $this->getMockBuilder('\OCA\Files_External\Lib\DefinitionParameter')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $parameter
+ ->expects($this->once())
+ ->method('getType')
+ ->willReturn(1);
+ $backend
+ ->expects($this->once())
+ ->method('getParameters')
+ ->willReturn(['secure' => $parameter]);
$backend->method('getIdentifier')
->willReturn('storage::identifier');
@@ -43,7 +54,7 @@ class StorageConfigTest extends \Test\TestCase {
$storageConfig->setMountPoint('test');
$storageConfig->setBackend($backend);
$storageConfig->setAuthMechanism($authMech);
- $storageConfig->setBackendOptions(['user' => 'test', 'password' => 'password123']);
+ $storageConfig->setBackendOptions(['user' => 'test', 'password' => 'password123', 'secure' => '1']);
$storageConfig->setPriority(128);
$storageConfig->setApplicableUsers(['user1', 'user2']);
$storageConfig->setApplicableGroups(['group1', 'group2']);
@@ -51,16 +62,17 @@ class StorageConfigTest extends \Test\TestCase {
$json = $storageConfig->jsonSerialize();
- $this->assertEquals(1, $json['id']);
- $this->assertEquals('/test', $json['mountPoint']);
- $this->assertEquals('storage::identifier', $json['backend']);
- $this->assertEquals('auth::identifier', $json['authMechanism']);
- $this->assertEquals('test', $json['backendOptions']['user']);
- $this->assertEquals('password123', $json['backendOptions']['password']);
- $this->assertEquals(128, $json['priority']);
- $this->assertEquals(['user1', 'user2'], $json['applicableUsers']);
- $this->assertEquals(['group1', 'group2'], $json['applicableGroups']);
- $this->assertEquals(['preview' => false], $json['mountOptions']);
+ $this->assertSame(1, $json['id']);
+ $this->assertSame('/test', $json['mountPoint']);
+ $this->assertSame('storage::identifier', $json['backend']);
+ $this->assertSame('auth::identifier', $json['authMechanism']);
+ $this->assertSame('test', $json['backendOptions']['user']);
+ $this->assertSame('password123', $json['backendOptions']['password']);
+ $this->assertSame(true, $json['backendOptions']['secure']);
+ $this->assertSame(128, $json['priority']);
+ $this->assertSame(['user1', 'user2'], $json['applicableUsers']);
+ $this->assertSame(['group1', 'group2'], $json['applicableGroups']);
+ $this->assertSame(['preview' => false], $json['mountOptions']);
}
}
}?", "Remote share" : "Ndarje e largët", "Remote share password" : "Fjalëkalim ndarjeje të largët", "Cancel" : "Anuloje", "Add remote share" : "Shtoni ndarje të largët", "You can upload into this folder" : "Mund të ngarkoni te kjo dosje", "No ownCloud installation (7 or higher) found at {remote}" : "Te {remote} s’u gjet instalim ownCloud (7 ose më sipër)", "Invalid ownCloud url" : "URL ownCloud e pavlefshme", "Shared by" : "Ndarë nga", "Sharing" : "Ndarje", "A file or folder has been <strong>shared</strong>" : "U <strong>nda me të tjerë</strong> një kartelë ose dosje", "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>", "A public shared file or folder was <strong>downloaded</strong>" : "<strong>U shkarkua</strong> një kartelë ose dosje e ndarë me të tjerët publikisht", "You received a new remote share %2$s from %1$s" : "Morët një ndarje të largët %2$s nga %1$s", "You received a new remote share from %s" : "Morët një ndarje të largët nga %s", "%1$s accepted remote share %2$s" : "%1$s pranoi ndarjen e largët %2$s", "%1$s declined remote share %2$s" : "%1$s hodhi tej ndarjen e largët %2$s", "Public shared folder %1$s was downloaded" : "U shkarkua dosja e ndarë publikisht %1$s", "Public shared file %1$s was downloaded" : "U shkarkua kartela e ndarë publikisht %1$s", "You shared %1$s with %2$s" : "Ndatë %1$s me %2$s", "You shared %1$s with group %2$s" : "Ndatë %1$s me grupin %2$s", "%2$s shared %1$s with %3$s" : "%2$s ndau %1$s me %3$s", "%2$s shared %1$s with group %3$s" : "%2$s ndau %1$s me grupin %3$s", "%2$s shared %1$s via link" : "%2$s ndau %1$s përmes një lidhjeje", "%2$s shared %1$s with you" : "%2$s ndau %1$s me ju", "You shared %1$s via link" : "E ndatë %1$s përmes një lidhjeje", "Downloaded via public link" : "Shkarkuar përmes një lidhjeje publike", "Shared with %2$s" : "U nda me %2$s", "Shared with group %2$s" : "U nda me grupin %2$s", "Shared with %3$s by %2$s" : "U nda me %3$s nga %2$s", "Shared with group %3$s by %2$s" : "U nda me grupin %3$s nga %2$s", "Shared via link by %2$s" : "U nda përmes një lidhje nga %2$s", "Shared by %2$s" : "U nda nga %2$s", "Shared via public link" : "U nda përmes një lidhje publike", "Shares" : "Ndarje", "You received %2$s as a remote share from %1$s" : "%2$s e morët si një ndarje të largët prej %1$s", "Accept" : "Pranoje", "Decline" : "Hidhe poshtë", "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Ndani me mua përmes ID-së time për #ownCloud Federated Cloud, shihni %s", "Share with me through my #ownCloud Federated Cloud ID" : "Ndani me mua përmes ID-së time për #ownCloud Federated Cloud", "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", "The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.", "Password" : "Fjalëkalim", "No entries found in this folder" : "S’u gjetën zëra në këtë dosje", "Name" : "Emër", "Sorry, this link doesn’t seem to work anymore." : "Na ndjeni, kjo lidhje duket se nuk funksionon më.", "Reasons might be:" : "Arsyet mund të jenë:", "the item was removed" : "objekti është hequr", "the link expired" : "lidhja ka skaduar", "sharing is disabled" : "ndarjet janë çaktivizuar", "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.", "Add to your ownCloud" : "Shtojeni te ownCloud-i juaj", "Download" : "Shkarko", "Download %s" : "Shkarko %s", "Direct link" : "Lidhje e drejtpërdrejtë", "Open documentation" : "Hap dokumentimin", "Allow users on this server to send shares to other servers" : "Lejoju përdoruesve në këtë shërbyes të dërgojnë ndarje në shërbyes të tjerë", "Allow users on this server to receive shares from other servers" : "Lejoju përdoruesve në këtë shërbyes të marrin ndarje nga shërbyes të tjerë", "Your Federated Cloud ID:" : "ID-ja juaj Federated Cloud:", "Share it:" : "Ndajeni:", "Add to your website" : "Shtojeni te sajti juaj", "Share with me via ownCloud" : "Ndani me mua përmes ownCloud-it", "HTML Code:" : "Kod HTML:" }, "nplurals=2; plural=(n != 1);");