use storage wrapper for quota instead of a filesystem proxy
This commit is contained in:
parent
5209cff371
commit
e2f04b3b42
1 changed files with 22 additions and 2 deletions
24
lib/util.php
24
lib/util.php
|
@ -46,6 +46,16 @@ class OC_Util {
|
|||
}
|
||||
|
||||
if( $user != "" ) { //if we aren't logged in, there is no use to set up the filesystem
|
||||
$quota = self::getUserQuota($user);
|
||||
if ($quota !== \OC\Files\SPACE_UNLIMITED) {
|
||||
\OC\Files\Filesystem::addStorageWrapper(function($mountPoint, $storage) use ($quota, $user) {
|
||||
if ($mountPoint === '/' . $user . '/'){
|
||||
return new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => $quota));
|
||||
} else {
|
||||
return $storage;
|
||||
}
|
||||
});
|
||||
}
|
||||
$user_dir = '/'.$user.'/files';
|
||||
$user_root = OC_User::getHome($user);
|
||||
$userdirectory = $user_root . '/files';
|
||||
|
@ -55,9 +65,7 @@ class OC_Util {
|
|||
//jail the user into his "home" directory
|
||||
\OC\Files\Filesystem::init($user, $user_dir);
|
||||
|
||||
$quotaProxy=new OC_FileProxy_Quota();
|
||||
$fileOperationProxy = new OC_FileProxy_FileOperations();
|
||||
OC_FileProxy::register($quotaProxy);
|
||||
OC_FileProxy::register($fileOperationProxy);
|
||||
|
||||
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir));
|
||||
|
@ -65,6 +73,18 @@ class OC_Util {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static function getUserQuota($user){
|
||||
$userQuota = OC_Preferences::getValue($user, 'files', 'quota', 'default');
|
||||
if($userQuota === 'default') {
|
||||
$userQuota = OC_AppConfig::getValue('files', 'default_quota', 'none');
|
||||
}
|
||||
if($userQuota === 'none') {
|
||||
return \OC\Files\SPACE_UNLIMITED;
|
||||
}else{
|
||||
return OC_Helper::computerFileSize($userQuota);
|
||||
}
|
||||
}
|
||||
|
||||
public static function tearDownFS() {
|
||||
\OC\Files\Filesystem::tearDown();
|
||||
self::$fsSetup=false;
|
||||
|
|
Loading…
Reference in a new issue