aboutsummaryrefslogtreecommitdiffstats
path: root/apps
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 /apps
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.
Diffstat (limited to 'apps')
-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)), '/');