Consolidate getQuota and setQuota methods in User instance
This commit is contained in:
parent
4659bf9b4a
commit
3a796d1e15
10 changed files with 62 additions and 23 deletions
|
@ -564,11 +564,8 @@ class Trashbin {
|
|||
$config = \OC::$server->getConfig();
|
||||
|
||||
$softQuota = true;
|
||||
$quota = $config->getUserValue($user, 'files', 'quota', null);
|
||||
$quota = \OC::$server->getUserManager()->get($user)->getQuota();
|
||||
$view = new \OC\Files\View('/' . $user);
|
||||
if ($quota === null || $quota === 'default') {
|
||||
$quota = $config->getAppValue('files', 'default_quota', null);
|
||||
}
|
||||
if ($quota === null || $quota === 'none') {
|
||||
$quota = \OC\Files\Filesystem::free_space('/');
|
||||
$softQuota = false;
|
||||
|
|
|
@ -653,11 +653,9 @@ class Storage {
|
|||
$versionsFileview = new \OC\Files\View('/'.$uid.'/files_versions');
|
||||
|
||||
// get available disk space for user
|
||||
$user = \OC::$server->getUserManager()->get($uid);
|
||||
$softQuota = true;
|
||||
$quota = $config->getUserValue($uid, 'files', 'quota', null);
|
||||
if ( $quota === null || $quota === 'default') {
|
||||
$quota = $config->getAppValue('files', 'default_quota', null);
|
||||
}
|
||||
$quota = $user->getQuota();
|
||||
if ( $quota === null || $quota === 'none' ) {
|
||||
$quota = \OC\Files\Filesystem::free_space('/');
|
||||
$softQuota = false;
|
||||
|
|
|
@ -278,7 +278,7 @@ class Users {
|
|||
$quota = \OCP\Util::humanFileSize($quota);
|
||||
}
|
||||
}
|
||||
$this->config->setUserValue($targetUserId, 'files', 'quota', $quota);
|
||||
$targetUser->setQuota($quota);
|
||||
break;
|
||||
case 'password':
|
||||
$targetUser->setPassword($parameters['_put']['value']);
|
||||
|
|
|
@ -456,7 +456,7 @@ class User {
|
|||
}
|
||||
}
|
||||
if(!is_null($quota)) {
|
||||
$this->config->setUserValue($this->uid, 'files', 'quota', $quota);
|
||||
$user = $this->userManager->get($this->uid)->setQuota($quota);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -244,9 +244,9 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
$userSession->listen('\OC\User', 'logout', function () {
|
||||
\OC_Hook::emit('OC_User', 'logout', array());
|
||||
});
|
||||
$userSession->listen('\OC\User', 'changeUser', function ($user) {
|
||||
$userSession->listen('\OC\User', 'changeUser', function ($user, $feature) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'changeUser', array('run' => true, 'user' => $user));
|
||||
\OC_Hook::emit('OC_User', 'changeUser', array('run' => true, 'user' => $user, 'feature' => $feature));
|
||||
});
|
||||
return $userSession;
|
||||
});
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
namespace OC\User;
|
||||
|
||||
use OC\Hooks\Emitter;
|
||||
use OC_Helper;
|
||||
use OCP\IAvatarManager;
|
||||
use OCP\IImage;
|
||||
use OCP\IURLGenerator;
|
||||
|
@ -140,7 +141,7 @@ class User implements IUser {
|
|||
$result = $this->backend->setDisplayName($this->uid, $displayName);
|
||||
if ($result) {
|
||||
$this->displayName = $displayName;
|
||||
$this->triggerChange();
|
||||
$this->triggerChange('displayName');
|
||||
}
|
||||
return $result !== false;
|
||||
} else {
|
||||
|
@ -161,7 +162,7 @@ class User implements IUser {
|
|||
} else {
|
||||
$this->config->setUserValue($this->uid, 'settings', 'email', $mailAddress);
|
||||
}
|
||||
$this->triggerChange();
|
||||
$this->triggerChange('eMailAddress');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -338,6 +339,36 @@ class User implements IUser {
|
|||
return $this->config->getUserValue($this->uid, 'settings', 'email', null);
|
||||
}
|
||||
|
||||
/**
|
||||
* get the users' quota
|
||||
*
|
||||
* @return string
|
||||
* @since 9.0.0
|
||||
*/
|
||||
public function getQuota() {
|
||||
$quota = $this->config->getUserValue($this->uid, 'files', 'quota', 'default');
|
||||
if($quota === 'default') {
|
||||
$quota = $this->config->getAppValue('files', 'default_quota', 'none');
|
||||
}
|
||||
return $quota;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the users' quota
|
||||
*
|
||||
* @param string $quota
|
||||
* @return void
|
||||
* @since 9.0.0
|
||||
*/
|
||||
public function setQuota($quota) {
|
||||
if($quota !== 'none' and $quota !== 'default') {
|
||||
$quota= OC_Helper::computerFileSize($quota);
|
||||
$quota=OC_Helper::humanFileSize($quota);
|
||||
}
|
||||
$this->config->setUserValue($this->uid, 'files', 'quota', $quota);
|
||||
$this->triggerChange('quota');
|
||||
}
|
||||
|
||||
/**
|
||||
* get the avatar image if it exists
|
||||
*
|
||||
|
@ -386,9 +417,9 @@ class User implements IUser {
|
|||
return $url;
|
||||
}
|
||||
|
||||
public function triggerChange() {
|
||||
public function triggerChange($feature) {
|
||||
if ($this->emitter) {
|
||||
$this->emitter->emit('\OC\User', 'changeUser', array($this));
|
||||
$this->emitter->emit('\OC\User', 'changeUser', array($this, $feature));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -285,11 +285,7 @@ class OC_Util {
|
|||
* @return int Quota bytes
|
||||
*/
|
||||
public static function getUserQuota($user) {
|
||||
$config = \OC::$server->getConfig();
|
||||
$userQuota = $config->getUserValue($user, 'files', 'quota', 'default');
|
||||
if ($userQuota === 'default') {
|
||||
$userQuota = $config->getAppValue('files', 'default_quota', 'none');
|
||||
}
|
||||
$userQuota = \OC::$server->getUserManager()->get($user)->getQuota();
|
||||
if($userQuota === 'none') {
|
||||
return \OCP\Files\FileInfo::SPACE_UNLIMITED;
|
||||
}else{
|
||||
|
|
|
@ -178,4 +178,21 @@ interface IUser {
|
|||
* @since 9.0.0
|
||||
*/
|
||||
public function setEMailAddress($mailAddress);
|
||||
|
||||
/**
|
||||
* get the users' quota
|
||||
*
|
||||
* @return string
|
||||
* @since 9.0.0
|
||||
*/
|
||||
public function getQuota();
|
||||
|
||||
/**
|
||||
* set the users' quota
|
||||
*
|
||||
* @param string $quota
|
||||
* @return void
|
||||
* @since 9.0.0
|
||||
*/
|
||||
public function setQuota($quota);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ if($quota !== 'none' and $quota !== 'default') {
|
|||
|
||||
// Return Success story
|
||||
if($username) {
|
||||
\OC::$server->getConfig()->setUserValue($username, 'files', 'quota', $quota);
|
||||
$targetUserObject->setQuota($quota);
|
||||
}else{//set the default quota when no username is specified
|
||||
if($quota === 'default') {//'default' as default quota makes no sense
|
||||
$quota='none';
|
||||
|
|
|
@ -184,7 +184,7 @@ class UsersController extends Controller {
|
|||
'displayname' => $user->getDisplayName(),
|
||||
'groups' => (empty($userGroups)) ? $this->groupManager->getUserGroupIds($user) : $userGroups,
|
||||
'subadmin' => $subAdminGroups,
|
||||
'quota' => $this->config->getUserValue($user->getUID(), 'files', 'quota', 'default'),
|
||||
'quota' => $user->getQuota(),
|
||||
'storageLocation' => $user->getHome(),
|
||||
'lastLogin' => $user->getLastLogin() * 1000,
|
||||
'backend' => $user->getBackendClassName(),
|
||||
|
|
Loading…
Reference in a new issue