Add getUserFolder/getAppFolder to Server.

This commit is contained in:
Thomas Tanghus 2013-09-18 12:34:10 +02:00
parent 415a27c1ae
commit 6ba23912a7
2 changed files with 49 additions and 0 deletions

View File

@ -62,6 +62,20 @@ interface IServerContainer {
*/
function getRootFolder();
/**
* Returns a view to ownCloud's files folder
*
* @return \OCP\Files\Folder
*/
function getUserFolder();
/**
* Returns an app-specific view in ownClouds data directory
*
* @return \OCP\Files\Folder
*/
function getAppFolder();
/**
* Returns the current session
*

View File

@ -56,6 +56,17 @@ class Server extends SimpleContainer implements IServerContainer {
$view = new View();
return new Root($manager, $view, $user);
});
$this->registerService('CustomFolder', function($c) {
$dir = $c['CustomFolderPath'];
$root = $this->getRootFolder();
$folder = null;
if(!$root->nodeExists($dir)) {
$folder = $root->newFolder($dir);
} else {
$folder = $root->get($dir);
}
return $folder;
});
}
/**
@ -97,6 +108,30 @@ class Server extends SimpleContainer implements IServerContainer {
return $this->query('RootFolder');
}
/**
* Returns a view to ownCloud's files folder
*
* @return \OCP\Files\Folder
*/
function getUserFolder() {
$this->registerParameter('CustomFolderPath', '/files');
return $this->query('CustomFolder');
}
/**
* Returns an app-specific view in ownClouds data directory
*
* @return \OCP\Files\Folder
*/
function getAppFolder() {
$this->registerParameter('CustomFolderPath', '/' . \OC_App::getCurrentApp());
return $this->query('CustomFolder');
}
/**
* Returns the current session
*