Merge pull request #22636 from owncloud/fix-ssl-on-external-storages
Fix HTTPS support on external storages
This commit is contained in:
commit
914ac09aae
4 changed files with 45 additions and 12 deletions
|
@ -859,6 +859,9 @@ MountConfigListView.prototype = _.extend({
|
||||||
var input = $(this);
|
var input = $(this);
|
||||||
var val = storageConfig.backendOptions[input.data('parameter')];
|
var val = storageConfig.backendOptions[input.data('parameter')];
|
||||||
if (val !== undefined) {
|
if (val !== undefined) {
|
||||||
|
if(input.is('input:checkbox')) {
|
||||||
|
input.prop('checked', val);
|
||||||
|
}
|
||||||
input.val(storageConfig.backendOptions[input.data('parameter')]);
|
input.val(storageConfig.backendOptions[input.data('parameter')]);
|
||||||
highlightInput(input);
|
highlightInput(input);
|
||||||
}
|
}
|
||||||
|
|
|
@ -211,6 +211,20 @@ class StorageConfig implements \JsonSerializable {
|
||||||
* @param array $backendOptions backend options
|
* @param array $backendOptions backend options
|
||||||
*/
|
*/
|
||||||
public function setBackendOptions($backendOptions) {
|
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;
|
$this->backendOptions = $backendOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,17 @@ class StorageConfigTest extends \Test\TestCase {
|
||||||
$backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend')
|
$backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->getMock();
|
->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')
|
$backend->method('getIdentifier')
|
||||||
->willReturn('storage::identifier');
|
->willReturn('storage::identifier');
|
||||||
|
|
||||||
|
@ -43,7 +54,7 @@ class StorageConfigTest extends \Test\TestCase {
|
||||||
$storageConfig->setMountPoint('test');
|
$storageConfig->setMountPoint('test');
|
||||||
$storageConfig->setBackend($backend);
|
$storageConfig->setBackend($backend);
|
||||||
$storageConfig->setAuthMechanism($authMech);
|
$storageConfig->setAuthMechanism($authMech);
|
||||||
$storageConfig->setBackendOptions(['user' => 'test', 'password' => 'password123']);
|
$storageConfig->setBackendOptions(['user' => 'test', 'password' => 'password123', 'secure' => '1']);
|
||||||
$storageConfig->setPriority(128);
|
$storageConfig->setPriority(128);
|
||||||
$storageConfig->setApplicableUsers(['user1', 'user2']);
|
$storageConfig->setApplicableUsers(['user1', 'user2']);
|
||||||
$storageConfig->setApplicableGroups(['group1', 'group2']);
|
$storageConfig->setApplicableGroups(['group1', 'group2']);
|
||||||
|
@ -51,16 +62,17 @@ class StorageConfigTest extends \Test\TestCase {
|
||||||
|
|
||||||
$json = $storageConfig->jsonSerialize();
|
$json = $storageConfig->jsonSerialize();
|
||||||
|
|
||||||
$this->assertEquals(1, $json['id']);
|
$this->assertSame(1, $json['id']);
|
||||||
$this->assertEquals('/test', $json['mountPoint']);
|
$this->assertSame('/test', $json['mountPoint']);
|
||||||
$this->assertEquals('storage::identifier', $json['backend']);
|
$this->assertSame('storage::identifier', $json['backend']);
|
||||||
$this->assertEquals('auth::identifier', $json['authMechanism']);
|
$this->assertSame('auth::identifier', $json['authMechanism']);
|
||||||
$this->assertEquals('test', $json['backendOptions']['user']);
|
$this->assertSame('test', $json['backendOptions']['user']);
|
||||||
$this->assertEquals('password123', $json['backendOptions']['password']);
|
$this->assertSame('password123', $json['backendOptions']['password']);
|
||||||
$this->assertEquals(128, $json['priority']);
|
$this->assertSame(true, $json['backendOptions']['secure']);
|
||||||
$this->assertEquals(['user1', 'user2'], $json['applicableUsers']);
|
$this->assertSame(128, $json['priority']);
|
||||||
$this->assertEquals(['group1', 'group2'], $json['applicableGroups']);
|
$this->assertSame(['user1', 'user2'], $json['applicableUsers']);
|
||||||
$this->assertEquals(['preview' => false], $json['mountOptions']);
|
$this->assertSame(['group1', 'group2'], $json['applicableGroups']);
|
||||||
|
$this->assertSame(['preview' => false], $json['mountOptions']);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,9 +136,13 @@ class DAV extends Common {
|
||||||
'password' => $this->password,
|
'password' => $this->password,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$proxy = \OC::$server->getConfig()->getSystemValue('proxy', '');
|
||||||
|
if($proxy !== '') {
|
||||||
|
$settings['proxy'] = $proxy;
|
||||||
|
}
|
||||||
|
|
||||||
$this->client = new Client($settings);
|
$this->client = new Client($settings);
|
||||||
$this->client->setThrowExceptions(true);
|
$this->client->setThrowExceptions(true);
|
||||||
|
|
||||||
if ($this->secure === true && $this->certPath) {
|
if ($this->secure === true && $this->certPath) {
|
||||||
$this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
|
$this->client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue