From 6d97dfb00c6bd660d9f8ac3a579f34d70fe87af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 19 May 2015 12:38:03 +0200 Subject: [PATCH] Catch NotFoundException and return no quota information which simply reflects the current state - no file storage has been initialized for the user. --- apps/provisioning_api/lib/users.php | 36 +++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php index 43cf22b071..b709e09726 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; + } }