Merge pull request #5238 from owncloud/externalstorage-owncloudbackend
Added ownCloud backend for external storageremotes/origin/ldap_group_count
commit
a8d20e0919
@ -0,0 +1,51 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
namespace OC\Files\Storage; |
||||
|
||||
/** |
||||
* ownCloud backend for external storage based on DAV backend. |
||||
* |
||||
* The ownCloud URL consists of three parts: |
||||
* http://%host/%context/remote.php/webdav/%root |
||||
* |
||||
*/ |
||||
class OwnCloud extends \OC\Files\Storage\DAV{ |
||||
const OC_URL_SUFFIX = 'remote.php/webdav'; |
||||
|
||||
public function __construct($params) { |
||||
// extract context path from host if specified |
||||
// (owncloud install path on host) |
||||
$host = $params['host']; |
||||
$contextPath = ''; |
||||
$hostSlashPos = strpos($host, '/'); |
||||
if ($hostSlashPos !== false){ |
||||
$contextPath = substr($host, $hostSlashPos); |
||||
$host = substr($host, 0, $hostSlashPos); |
||||
} |
||||
|
||||
if (substr($contextPath , 1) !== '/'){ |
||||
$contextPath .= '/'; |
||||
} |
||||
|
||||
if (isset($params['root'])){ |
||||
$root = $params['root']; |
||||
if (substr($root, 1) !== '/'){ |
||||
$root = '/' . $root; |
||||
} |
||||
} |
||||
else{ |
||||
$root = '/'; |
||||
} |
||||
|
||||
$params['host'] = $host; |
||||
$params['root'] = $contextPath . self::OC_URL_SUFFIX . $root; |
||||
|
||||
parent::__construct($params); |
||||
} |
||||
} |
@ -0,0 +1,31 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
namespace Test\Files\Storage; |
||||
|
||||
class OwnCloud extends Storage { |
||||
|
||||
private $config; |
||||
|
||||
public function setUp() { |
||||
$id = uniqid(); |
||||
$this->config = include('files_external/tests/config.php'); |
||||
if ( ! is_array($this->config) or ! isset($this->config['owncloud']) or ! $this->config['owncloud']['run']) { |
||||
$this->markTestSkipped('ownCloud backend not configured'); |
||||
} |
||||
$this->config['owncloud']['root'] .= '/' . $id; //make sure we have an new empty folder to work in |
||||
$this->instance = new \OC\Files\Storage\OwnCloud($this->config['owncloud']); |
||||
$this->instance->mkdir('/'); |
||||
} |
||||
|
||||
public function tearDown() { |
||||
if ($this->instance) { |
||||
$this->instance->rmdir('/'); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue