diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php index 132d923d96..2dd9931905 100644 --- a/lib/ocs/cloud.php +++ b/lib/ocs/cloud.php @@ -35,13 +35,49 @@ class OC_OCS_Cloud { 'edition' => OC_Util::getEditionString(), ); - $result['capabilities'] = array( - 'core' => array( - 'pollinterval' => OC_Config::getValue('pollinterval', 60), - ), - ); + $result['capabilities'] = array( + 'core' => array( + 'pollinterval' => OC_Config::getValue('pollinterval', 60), + ), + ); + return new OC_OCS_Result($result); } + + /** + * gets user info + * + * exposes the quota of an user: + * + * + * 1234 + * 4321 + * 5555 + * 0.78 + * + * + * + * @param $parameters object should contain parameter 'userid' which identifies + * the user from whom the information will be returned + */ + public static function getUser($parameters) { + // Check if they are viewing information on themselves + if($parameters['userid'] === OC_User::getUser()) { + // Self lookup + $quota = array(); + $storage = OC_Helper::getStorageInfo(); + $quota = array( + 'free' => $storage['free'], + 'used' => $storage['used'], + 'total' => $storage['total'], + 'relative' => $storage['relative'], + ); + return new OC_OCS_Result(array('quota' => $quota)); + } else { + // No permission to view this user data + return new OC_OCS_Result(null, 997); + } + } public static function getUserPublickey($parameters) { diff --git a/ocs/routes.php b/ocs/routes.php index 1ea698c7a8..283c9af692 100644 --- a/ocs/routes.php +++ b/ocs/routes.php @@ -28,7 +28,7 @@ OC_API::register( array('OC_OCS_Activity', 'activityGet'), 'core', OC_API::USER_AUTH - ); + ); // Privatedata OC_API::register( 'get', @@ -75,3 +75,10 @@ OC_API::register( 'core', OC_API::USER_AUTH ); +OC_API::register( + 'get', + '/cloud/users/{userid}', + array('OC_OCS_Cloud', 'getUser'), + 'core', + OC_API::USER_AUTH + );