Consolidate getQuota and setQuota methods in User instance

This commit is contained in:
Arthur Schiwon 2016-02-09 17:16:43 +01:00
parent 4659bf9b4a
commit 3a796d1e15
10 changed files with 62 additions and 23 deletions

View File

@ -564,11 +564,8 @@ class Trashbin {
$config = \OC::$server->getConfig(); $config = \OC::$server->getConfig();
$softQuota = true; $softQuota = true;
$quota = $config->getUserValue($user, 'files', 'quota', null); $quota = \OC::$server->getUserManager()->get($user)->getQuota();
$view = new \OC\Files\View('/' . $user); $view = new \OC\Files\View('/' . $user);
if ($quota === null || $quota === 'default') {
$quota = $config->getAppValue('files', 'default_quota', null);
}
if ($quota === null || $quota === 'none') { if ($quota === null || $quota === 'none') {
$quota = \OC\Files\Filesystem::free_space('/'); $quota = \OC\Files\Filesystem::free_space('/');
$softQuota = false; $softQuota = false;

View File

@ -653,11 +653,9 @@ class Storage {
$versionsFileview = new \OC\Files\View('/'.$uid.'/files_versions'); $versionsFileview = new \OC\Files\View('/'.$uid.'/files_versions');
// get available disk space for user // get available disk space for user
$user = \OC::$server->getUserManager()->get($uid);
$softQuota = true; $softQuota = true;
$quota = $config->getUserValue($uid, 'files', 'quota', null); $quota = $user->getQuota();
if ( $quota === null || $quota === 'default') {
$quota = $config->getAppValue('files', 'default_quota', null);
}
if ( $quota === null || $quota === 'none' ) { if ( $quota === null || $quota === 'none' ) {
$quota = \OC\Files\Filesystem::free_space('/'); $quota = \OC\Files\Filesystem::free_space('/');
$softQuota = false; $softQuota = false;

View File

@ -278,7 +278,7 @@ class Users {
$quota = \OCP\Util::humanFileSize($quota); $quota = \OCP\Util::humanFileSize($quota);
} }
} }
$this->config->setUserValue($targetUserId, 'files', 'quota', $quota); $targetUser->setQuota($quota);
break; break;
case 'password': case 'password':
$targetUser->setPassword($parameters['_put']['value']); $targetUser->setPassword($parameters['_put']['value']);

View File

@ -456,7 +456,7 @@ class User {
} }
} }
if(!is_null($quota)) { if(!is_null($quota)) {
$this->config->setUserValue($this->uid, 'files', 'quota', $quota); $user = $this->userManager->get($this->uid)->setQuota($quota);
} }
} }

View File

@ -244,9 +244,9 @@ class Server extends ServerContainer implements IServerContainer {
$userSession->listen('\OC\User', 'logout', function () { $userSession->listen('\OC\User', 'logout', function () {
\OC_Hook::emit('OC_User', 'logout', array()); \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 */ /** @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; return $userSession;
}); });

View File

@ -30,6 +30,7 @@
namespace OC\User; namespace OC\User;
use OC\Hooks\Emitter; use OC\Hooks\Emitter;
use OC_Helper;
use OCP\IAvatarManager; use OCP\IAvatarManager;
use OCP\IImage; use OCP\IImage;
use OCP\IURLGenerator; use OCP\IURLGenerator;
@ -140,7 +141,7 @@ class User implements IUser {
$result = $this->backend->setDisplayName($this->uid, $displayName); $result = $this->backend->setDisplayName($this->uid, $displayName);
if ($result) { if ($result) {
$this->displayName = $displayName; $this->displayName = $displayName;
$this->triggerChange(); $this->triggerChange('displayName');
} }
return $result !== false; return $result !== false;
} else { } else {
@ -161,7 +162,7 @@ class User implements IUser {
} else { } else {
$this->config->setUserValue($this->uid, 'settings', 'email', $mailAddress); $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); 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 * get the avatar image if it exists
* *
@ -386,9 +417,9 @@ class User implements IUser {
return $url; return $url;
} }
public function triggerChange() { public function triggerChange($feature) {
if ($this->emitter) { if ($this->emitter) {
$this->emitter->emit('\OC\User', 'changeUser', array($this)); $this->emitter->emit('\OC\User', 'changeUser', array($this, $feature));
} }
} }

View File

@ -285,11 +285,7 @@ class OC_Util {
* @return int Quota bytes * @return int Quota bytes
*/ */
public static function getUserQuota($user) { public static function getUserQuota($user) {
$config = \OC::$server->getConfig(); $userQuota = \OC::$server->getUserManager()->get($user)->getQuota();
$userQuota = $config->getUserValue($user, 'files', 'quota', 'default');
if ($userQuota === 'default') {
$userQuota = $config->getAppValue('files', 'default_quota', 'none');
}
if($userQuota === 'none') { if($userQuota === 'none') {
return \OCP\Files\FileInfo::SPACE_UNLIMITED; return \OCP\Files\FileInfo::SPACE_UNLIMITED;
}else{ }else{

View File

@ -178,4 +178,21 @@ interface IUser {
* @since 9.0.0 * @since 9.0.0
*/ */
public function setEMailAddress($mailAddress); 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);
} }

View File

@ -56,7 +56,7 @@ if($quota !== 'none' and $quota !== 'default') {
// Return Success story // Return Success story
if($username) { if($username) {
\OC::$server->getConfig()->setUserValue($username, 'files', 'quota', $quota); $targetUserObject->setQuota($quota);
}else{//set the default quota when no username is specified }else{//set the default quota when no username is specified
if($quota === 'default') {//'default' as default quota makes no sense if($quota === 'default') {//'default' as default quota makes no sense
$quota='none'; $quota='none';

View File

@ -184,7 +184,7 @@ class UsersController extends Controller {
'displayname' => $user->getDisplayName(), 'displayname' => $user->getDisplayName(),
'groups' => (empty($userGroups)) ? $this->groupManager->getUserGroupIds($user) : $userGroups, 'groups' => (empty($userGroups)) ? $this->groupManager->getUserGroupIds($user) : $userGroups,
'subadmin' => $subAdminGroups, 'subadmin' => $subAdminGroups,
'quota' => $this->config->getUserValue($user->getUID(), 'files', 'quota', 'default'), 'quota' => $user->getQuota(),
'storageLocation' => $user->getHome(), 'storageLocation' => $user->getHome(),
'lastLogin' => $user->getLastLogin() * 1000, 'lastLogin' => $user->getLastLogin() * 1000,
'backend' => $user->getBackendClassName(), 'backend' => $user->getBackendClassName(),