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.
This commit is contained in:
Vincent Petry 2014-06-23 11:57:43 +02:00
parent 81ecbbb061
commit 9b001ed903
2 changed files with 12 additions and 9 deletions

View file

@ -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');

View file

@ -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)), '/');