add directory while creating mount point

This commit is contained in:
Björn Schießle 2012-10-09 15:05:49 +02:00
parent b475164e95
commit 293484d1ee
1 changed files with 40 additions and 0 deletions

View File

@ -109,6 +109,21 @@ class OC_Mount_Config {
return $personal;
}
/**
* Add directory for mount point to the filesystem
* @param OC_Fileview instance $view
* @param string path to mount point
*/
private static function addMountPointDirectory($view, $path) {
$dir = '';
foreach ( explode('/', $path) as $pathPart) {
$dir = $dir.'/'.$pathPart;
if ( !$view->file_exists($dir)) {
$view->mkdir($dir);
}
}
}
/**
* Add a mount point to the filesystem
@ -127,8 +142,33 @@ class OC_Mount_Config {
if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') {
return false;
}
$view = new OC_FilesystemView('/'.OCP\User::getUser().'/files');
self::addMountPointDirectory($view, ltrim($mountPoint, '/'));
$mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
} else {
$view = new OC_FilesystemView('/');
switch ($mountType) {
case 'user':
if ($applicable == "all") {
$users = OCP\User::getUsers();
foreach ( $users as $user ) {
$path = $user.'/files/'.ltrim($mountPoint, '/');
self::addMountPointDirectory($view, $path);
}
} else {
$path = $applicable.'/files/'.ltrim($mountPoint, '/');
self::addMountPointDirectory($view, $path);
}
break;
case 'group' :
$groupMembers = OC_Group::usersInGroups(array($applicable));
foreach ( $groupMembers as $user ) {
$path = $user.'/files/'.ltrim($mountPoint, '/');
self::addMountPointDirectory($view, $path);
}
break;
}
$mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
}
$mount = array($applicable => array($mountPoint => array('class' => $class, 'options' => $classOptions)));