From 6ba23912a7c969ce24a3b295c55a60ea640ca690 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 18 Sep 2013 12:34:10 +0200 Subject: [PATCH 1/4] Add getUserFolder/getAppFolder to Server. --- lib/public/iservercontainer.php | 14 +++++++++++++ lib/server.php | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index ec7212b306..89e71db8d1 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -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 * diff --git a/lib/server.php b/lib/server.php index 0eee3e0f73..9525fce9fd 100644 --- a/lib/server.php +++ b/lib/server.php @@ -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 * From 442a2e074cea694ce0d361b5433eb5473be438e6 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 18 Sep 2013 12:35:46 +0200 Subject: [PATCH 2/4] Update to adhere to the coding guidelines. --- lib/server.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/server.php b/lib/server.php index 9525fce9fd..6b1cb9c38d 100644 --- a/lib/server.php +++ b/lib/server.php @@ -17,10 +17,10 @@ use OCP\IServerContainer; class Server extends SimpleContainer implements IServerContainer { function __construct() { - $this->registerService('ContactsManager', function($c){ + $this->registerService('ContactsManager', function($c) { return new ContactsManager(); }); - $this->registerService('Request', function($c){ + $this->registerService('Request', function($c) { $params = array(); // we json decode the body only in case of content type json @@ -45,10 +45,10 @@ class Server extends SimpleContainer implements IServerContainer { ) ); }); - $this->registerService('PreviewManager', function($c){ + $this->registerService('PreviewManager', function($c) { return new PreviewManager(); }); - $this->registerService('RootFolder', function($c){ + $this->registerService('RootFolder', function($c) { // TODO: get user and user manager from container as well $user = \OC_User::getUser(); $user = \OC_User::getManager()->get($user); @@ -83,8 +83,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IRequest|null */ - function getRequest() - { + function getRequest() { return $this->query('Request'); } @@ -93,8 +92,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IPreview */ - function getPreviewManager() - { + function getPreviewManager() { return $this->query('PreviewManager'); } @@ -103,8 +101,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Files\Folder */ - function getRootFolder() - { + function getRootFolder() { return $this->query('RootFolder'); } From 2ef0b58ff6434254510c8be9c940126883022d76 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 18 Sep 2013 14:25:12 +0200 Subject: [PATCH 3/4] Don't try to be clever --- lib/server.php | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/server.php b/lib/server.php index 6b1cb9c38d..3454622425 100644 --- a/lib/server.php +++ b/lib/server.php @@ -56,17 +56,6 @@ 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; - }); } /** @@ -112,8 +101,15 @@ class Server extends SimpleContainer implements IServerContainer { */ function getUserFolder() { - $this->registerParameter('CustomFolderPath', '/files'); - return $this->query('CustomFolder'); + $dir = '/files'; + $root = $this->getRootFolder(); + $folder = null; + if(!$root->nodeExists($dir)) { + $folder = $root->newFolder($dir); + } else { + $folder = $root->get($dir); + } + return $folder; } @@ -124,8 +120,15 @@ class Server extends SimpleContainer implements IServerContainer { */ function getAppFolder() { - $this->registerParameter('CustomFolderPath', '/' . \OC_App::getCurrentApp()); - return $this->query('CustomFolder'); + $dir = '/' . \OC_App::getCurrentApp(); + $root = $this->getRootFolder(); + $folder = null; + if(!$root->nodeExists($dir)) { + $folder = $root->newFolder($dir); + } else { + $folder = $root->get($dir); + } + return $folder; } From 9e4d13858c92e3b42e99152cee7b899a7ddb926b Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Thu, 19 Sep 2013 13:27:41 +0200 Subject: [PATCH 4/4] Fix syntax error --- lib/server.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server.php b/lib/server.php index 5c386593f1..4f5bcfbe67 100644 --- a/lib/server.php +++ b/lib/server.php @@ -113,7 +113,6 @@ class Server extends SimpleContainer implements IServerContainer { $folder = $root->get($dir); } return $folder; - } /** @@ -132,6 +131,7 @@ class Server extends SimpleContainer implements IServerContainer { $folder = $root->get($dir); } return $folder; + } /** * Returns an ICache instance