From 972243d5640c40b1f161e50f31404c71d7c290c0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 5 Nov 2012 16:39:03 +0100 Subject: [PATCH] support string values ('true' and 'false') for configuring the secure parameter on external storage backends fixes #78 --- apps/files_external/lib/ftp.php | 10 +++++++++- apps/files_external/lib/swift.php | 10 +++++++++- apps/files_external/lib/webdav.php | 10 +++++++++- apps/files_external/tests/ftp.php | 18 ++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index 2fc2a3a1a3..650ca88fd9 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -19,7 +19,15 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ $this->host=$params['host']; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=isset($params['secure'])?(bool)$params['secure']:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 2f0076706e..9c9754ac34 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -271,7 +271,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ $this->host=$params['host']; $this->user=$params['user']; $this->root=isset($params['root'])?$params['root']:'/'; - $this->secure=isset($params['secure'])?(bool)$params['secure']:true; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index 02fe540d06..ec942b11f6 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -27,7 +27,15 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ $this->host=$host; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=(isset($params['secure']) && $params['secure'] == 'true')?true:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 4549c42041..80288b5911 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -24,4 +24,22 @@ class Test_Filestorage_FTP extends Test_FileStorage { OCP\Files::rmdirr($this->instance->constructUrl('')); } } + + public function testConstructUrl(){ + $config = array ( 'host' => 'localhost', 'user' => 'ftp', 'password' => 'ftp', 'root' => '/', 'secure' => false ); + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = true; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'false'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'true'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + } }