From f14ce1efdc2a8b9656bd485055dea706936c585d Mon Sep 17 00:00:00 2001
From: Tom Needham <tom@owncloud.com>
Date: Wed, 1 May 2013 18:20:46 +0100
Subject: [PATCH] Add quota to core api

---
 lib/ocs/cloud.php | 33 ++++++++++++++++++++++++++++-----
 ocs/routes.php    |  9 ++++++++-
 2 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php
index 132d923d960..1535f70a8cc 100644
--- a/lib/ocs/cloud.php
+++ b/lib/ocs/cloud.php
@@ -35,13 +35,36 @@ 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
+	 */
+	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
+	);
-- 
GitLab