diff options
author | Morris Jobke <morris.jobke@gmail.com> | 2013-08-27 19:07:47 +0400 |
---|---|---|
committer | Morris Jobke <morris.jobke@gmail.com> | 2013-08-27 19:07:47 +0400 |
commit | abc23f71285112cda59c70a6f490e43fac2ee123 (patch) | |
tree | 9f2243a2e7242564a259eb6305a52de6715ce676 | |
parent | 38084aba2a755fdb5af4fb5bf6b90956e5fdb536 (diff) | |
parent | e91edabe0f58fe316e3fb62461bce16168e74f52 (diff) |
Merge pull request #3208 from owncloud/api_capabilities_quota
Add the quota to the external API for use with the mobile and desktop clients
-rw-r--r-- | lib/ocs/cloud.php | 46 | ||||
-rw-r--r-- | ocs/routes.php | 9 |
2 files changed, 49 insertions, 6 deletions
diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php index 132d923d960..2dd99319057 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: + * <data> + * <quota> + * <free>1234</free> + * <used>4321</used> + * <total>5555</total> + * <ralative>0.78</ralative> + * </quota> + * </data> + * + * @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 1ea698c7a83..283c9af6924 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 + ); |