setup storage wrappers before setting up the filesystem
This commit is contained in:
parent
0af2dc7d37
commit
3cb53b7756
2 changed files with 34 additions and 30 deletions
|
@ -957,7 +957,7 @@ class Trashbin {
|
|||
*/
|
||||
public static function registerHooks() {
|
||||
// create storage wrapper on setup
|
||||
\OCP\Util::connectHook('OC_Filesystem', 'setup', 'OCA\Files_Trashbin\Storage', 'setupStorage');
|
||||
\OCP\Util::connectHook('OC_Filesystem', 'preSetup', 'OCA\Files_Trashbin\Storage', 'setupStorage');
|
||||
//Listen to delete user signal
|
||||
\OCP\Util::connectHook('OC_User', 'pre_deleteUser', 'OCA\Files_Trashbin\Hooks', 'deleteUser_hook');
|
||||
//Listen to post write hook
|
||||
|
|
|
@ -133,6 +133,39 @@ class OC_Util {
|
|||
self::$fsSetup = true;
|
||||
}
|
||||
|
||||
\OC\Files\Filesystem::addStorageWrapper('mount_options', function ($mountPoint, \OCP\Files\Storage $storage, \OCP\Files\Mount\IMountPoint $mount) {
|
||||
if ($storage->instanceOfStorage('\OC\Files\Storage\Common')) {
|
||||
/** @var \OC\Files\Storage\Common $storage */
|
||||
$storage->setMountOptions($mount->getOptions());
|
||||
}
|
||||
return $storage;
|
||||
});
|
||||
|
||||
\OC\Files\Filesystem::addStorageWrapper('oc_quota', function ($mountPoint, $storage) {
|
||||
// set up quota for home storages, even for other users
|
||||
// which can happen when using sharing
|
||||
|
||||
/**
|
||||
* @var \OC\Files\Storage\Storage $storage
|
||||
*/
|
||||
if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
|
||||
|| $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
|
||||
) {
|
||||
/** @var \OC\Files\Storage\Home $storage */
|
||||
if (is_object($storage->getUser())) {
|
||||
$user = $storage->getUser()->getUID();
|
||||
$quota = OC_Util::getUserQuota($user);
|
||||
if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
|
||||
return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota, 'root' => 'files'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $storage;
|
||||
});
|
||||
|
||||
OC_Hook::emit('OC_Filesystem', 'preSetup', array('user' => $user));
|
||||
|
||||
//check if we are using an object storage
|
||||
$objectStore = OC_Config::getValue('objectstore');
|
||||
if (isset($objectStore)) {
|
||||
|
@ -146,37 +179,8 @@ class OC_Util {
|
|||
return false;
|
||||
}
|
||||
|
||||
\OC\Files\Filesystem::addStorageWrapper('mount_options', function($mountPoint, \OCP\Files\Storage $storage, \OCP\Files\Mount\IMountPoint $mount) {
|
||||
if($storage->instanceOfStorage('\OC\Files\Storage\Common')) {
|
||||
/** @var \OC\Files\Storage\Common $storage */
|
||||
$storage->setMountOptions($mount->getOptions());
|
||||
}
|
||||
return $storage;
|
||||
});
|
||||
|
||||
//if we aren't logged in, there is no use to set up the filesystem
|
||||
if ($user != "") {
|
||||
\OC\Files\Filesystem::addStorageWrapper('oc_quota', function ($mountPoint, $storage) {
|
||||
// set up quota for home storages, even for other users
|
||||
// which can happen when using sharing
|
||||
|
||||
/**
|
||||
* @var \OC\Files\Storage\Storage $storage
|
||||
*/
|
||||
if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
|
||||
|| $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
|
||||
) {
|
||||
if (is_object($storage->getUser())) {
|
||||
$user = $storage->getUser()->getUID();
|
||||
$quota = OC_Util::getUserQuota($user);
|
||||
if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) {
|
||||
return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota, 'root' => 'files'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $storage;
|
||||
});
|
||||
|
||||
$userDir = '/' . $user . '/files';
|
||||
|
||||
|
|
Loading…
Reference in a new issue