split share and root config for smb backend, also sanitize config a bit more
This commit is contained in:
parent
4afcae8d56
commit
4768510923
|
@ -13,6 +13,7 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
|
|||
private $user;
|
||||
private $host;
|
||||
private $root;
|
||||
private $share;
|
||||
|
||||
private static $tempFiles=array();
|
||||
|
||||
|
@ -20,17 +21,32 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
|
|||
$this->host=$params['host'];
|
||||
$this->user=$params['user'];
|
||||
$this->password=$params['password'];
|
||||
$this->share=$params['share'];
|
||||
$this->root=isset($params['root'])?$params['root']:'/';
|
||||
if(substr($this->root,-1,1)!='/'){
|
||||
$this->root.='/';
|
||||
}
|
||||
if(substr($this->root,0,1)!='/'){
|
||||
$this->root='/'.$this->root;
|
||||
}
|
||||
if(substr($this->share,0,1)!='/'){
|
||||
$this->share='/'.$this->share;
|
||||
}
|
||||
if(substr($this->share,-1,1)=='/'){
|
||||
$this->share=substr($this->share,0,-1);
|
||||
}
|
||||
|
||||
//create the root folder if necesary
|
||||
$this->mkdir('');
|
||||
if(!$this->is_dir('')){
|
||||
$this->mkdir('');
|
||||
}
|
||||
}
|
||||
|
||||
public function constructUrl($path){
|
||||
if(substr($path,-1)=='/'){
|
||||
$path=substr($path,0,-1);
|
||||
}
|
||||
return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path;
|
||||
return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->share.$this->root.$path;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,8 @@ return array(
|
|||
'user'=>'test',
|
||||
'password'=>'test',
|
||||
'host'=>'localhost',
|
||||
'root'=>'/test',
|
||||
'share'=>'/test',
|
||||
'root'=>'/test/',
|
||||
),
|
||||
'amazons3'=>array(
|
||||
'run'=>false,
|
||||
|
|
|
@ -19,7 +19,7 @@ if(!is_array($config) or !isset($config['smb']) or !$config['smb']['run']){
|
|||
public function setUp(){
|
||||
$id=uniqid();
|
||||
$this->config=include('apps/files_external/tests/config.php');
|
||||
$this->config['smb']['root'].='/'.$id;//make sure we have an new empty folder to work in
|
||||
$this->config['smb']['root'].=$id;//make sure we have an new empty folder to work in
|
||||
$this->instance=new OC_Filestorage_SMB($this->config['smb']);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue