diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-05-19 12:38:03 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-05-19 12:38:03 +0200 |
commit | 6d97dfb00c6bd660d9f8ac3a579f34d70fe87af1 (patch) | |
tree | e6e8e71d18d1bde14faa2db8981e07a645ad5be5 /apps/provisioning_api | |
parent | ad88a7d53d039207eddc82993920beab26375f62 (diff) | |
download | nextcloud-server-6d97dfb00c6bd660d9f8ac3a579f34d70fe87af1.tar.gz nextcloud-server-6d97dfb00c6bd660d9f8ac3a579f34d70fe87af1.zip |
Catch NotFoundException and return no quota information which simply reflects the current state - no file storage has been initialized for the user.
Diffstat (limited to 'apps/provisioning_api')
-rw-r--r-- | apps/provisioning_api/lib/users.php | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php index 43cf22b071b..b709e09726d 100644 --- a/apps/provisioning_api/lib/users.php +++ b/apps/provisioning_api/lib/users.php @@ -27,6 +27,7 @@ use \OC_SubAdmin; use \OC_User; use \OC_Group; use \OC_Helper; +use OCP\Files\NotFoundException; class Users { @@ -92,16 +93,8 @@ class Users { $config = \OC::$server->getConfig(); // Find the data - $data = array(); - \OC_Util::tearDownFS(); - \OC_Util::setupFS($userId); - $storage = OC_Helper::getStorageInfo('/'); - $data['quota'] = array( - 'free' => $storage['free'], - 'used' => $storage['used'], - 'total' => $storage['total'], - 'relative' => $storage['relative'], - ); + $data = []; + $data = self::fillStorageInfo($userId, $data); $data['enabled'] = $config->getUserValue($userId, 'core', 'enabled', 'true'); $data['email'] = $config->getUserValue($userId, 'settings', 'email'); $data['displayname'] = OC_User::getDisplayName($parameters['userid']); @@ -350,4 +343,27 @@ class Users { return new OC_OCS_Result($groups); } } + + /** + * @param $userId + * @param $data + * @return mixed + * @throws \OCP\Files\NotFoundException + */ + private static function fillStorageInfo($userId, $data) { + try { + \OC_Util::tearDownFS(); + \OC_Util::setupFS($userId); + $storage = OC_Helper::getStorageInfo('/'); + $data['quota'] = [ + 'free' => $storage['free'], + 'used' => $storage['used'], + 'total' => $storage['total'], + 'relative' => $storage['relative'], + ]; + } catch (NotFoundException $ex) { + $data['quota'] = []; + } + return $data; + } } |