aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-06-23 11:57:43 +0200
committerVincent Petry <pvince81@owncloud.com>2014-06-23 11:57:43 +0200
commit9b001ed90397e18601096bd16e565b232e223c5f (patch)
tree6dcbaa9d4b41e3d560c855e10dcf7b0d85c2a10a
parent81ecbbb0614ecfe9953d813f92424f299a1e2834 (diff)
downloadnextcloud-server-9b001ed90397e18601096bd16e565b232e223c5f.tar.gz
nextcloud-server-9b001ed90397e18601096bd16e565b232e223c5f.zip
Setup the external share manager in a hook
To make sure the external shares are initialized in the right order and make sure the session is correctly initialized before, the external share manager is now set up in a filesystem setup hook.
-rw-r--r--apps/files_sharing/appinfo/app.php9
-rw-r--r--apps/files_sharing/lib/external/manager.php12
2 files changed, 12 insertions, 9 deletions
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index a9f4ff5089b..a4a0a57c675 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -14,15 +14,8 @@ OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
\OCP\App::registerAdmin('files_sharing', 'settings-admin');
-$externalManager = new \OCA\Files_Sharing\External\Manager(
- \OC::$server->getDatabaseConnection(),
- \OC\Files\Filesystem::getMountManager(),
- \OC\Files\Filesystem::getLoader(),
- \OC::$server->getUserSession()
-);
-$externalManager->setup();
-
OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
+OCP\Util::connectHook('OC_Filesystem', 'setup', '\OCA\Files_Sharing\External\Manager', 'setup');
OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php
index 70a0e98ebd5..4441a72fb16 100644
--- a/apps/files_sharing/lib/external/manager.php
+++ b/apps/files_sharing/lib/external/manager.php
@@ -67,7 +67,7 @@ class Manager {
}
}
- public function setup() {
+ private function setupMounts() {
// don't setup server-to-server shares if the file_external app is disabled
// FIXME no longer needed if we use the webdav implementation from core
if (\OC_App::isEnabled('files_external') === false) {
@@ -88,6 +88,16 @@ class Manager {
}
}
+ public static function setup() {
+ $externalManager = new \OCA\Files_Sharing\External\Manager(
+ \OC::$server->getDatabaseConnection(),
+ \OC\Files\Filesystem::getMountManager(),
+ \OC\Files\Filesystem::getLoader(),
+ \OC::$server->getUserSession()
+ );
+ $externalManager->setupMounts();
+ }
+
protected function stripPath($path) {
$prefix = '/' . $this->userSession->getUser()->getUID() . '/files';
return rtrim(substr($path, strlen($prefix)), '/');