From 0956cae39ea8380d42d03857a18fdab0a07ebe8c Mon Sep 17 00:00:00 2001
From: Tom Needham <needham.thomas@gmail.com>
Date: Wed, 16 Jan 2013 20:43:46 +0000
Subject: [PATCH] Add new /cloud/capabilities route and remove unused methods

---
 lib/ocs/cloud.php | 54 ++++++++++-------------------------------------
 ocs/routes.php    |  3 ++-
 2 files changed, 13 insertions(+), 44 deletions(-)

diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php
index 2d18b1db3f..29db1e6361 100644
--- a/lib/ocs/cloud.php
+++ b/lib/ocs/cloud.php
@@ -24,49 +24,17 @@
 
 class OC_OCS_Cloud {
 
-	public static function getSystemWebApps() {
-		OC_Util::checkLoggedIn();
-		$apps = OC_App::getEnabledApps();
-		$values = array();
-		foreach($apps as $app) {
-			$info = OC_App::getAppInfo($app);
-			if(isset($info['standalone'])) {
-				$newValue = array('name'=>$info['name'],'url'=>OC_Helper::linkToAbsolute($app,''),'icon'=>'');
-				$values[] = $newValue;
-			}
-		}
-		return new OC_OCS_Result($values);
-	}
-
-	public static function getUserQuota($parameters) {
-		$user = OC_User::getUser();
-		if(OC_User::isAdminUser($user) or ($user==$parameters['user'])) {
-
-			if(OC_User::userExists($parameters['user'])) {
-				// calculate the disc space
-				$userDir = '/'.$parameters['user'].'/files';
-				OC_Filesystem::init($userDir);
-				$rootInfo = OC_FileCache::get('');
-				$sharedInfo = OC_FileCache::get('/Shared');
-				$used = $rootInfo['size'] - $sharedInfo['size'];
-				$free = OC_Filesystem::free_space();
-				$total = $free + $used;
-				if($total===0) $total = 1;  // prevent division by zero
-				$relative = round(($used/$total)*10000)/100;
-
-				$xml = array();
-				$xml['quota'] = $total;
-				$xml['free'] = $free;
-				$xml['used'] = $used;
-				$xml['relative'] = $relative;
-
-				return new OC_OCS_Result($xml);
-			} else {
-				return new OC_OCS_Result(null, 300);
-			}
-		} else {
-			return new OC_OCS_Result(null, 300);
-		}
+	public static function getCapabilities($parameters){
+		$result = array();
+		$result['version'] = implode('.', OC_Util::getVersion());
+		$result['versionstring'] = OC_Util::getVersionString();
+		$result['edition'] = OC_Util::getEditionString(); 
+		$result['bugfilechunking'] = 'true';
+		$result['encryption'] = 'false';
+		$result['versioning'] = OCP\App::isEnabled('files_versioning') ? 'true' : 'false';
+		$result['undelete'] = 'true';
+		$result['installedapps'] = OC_App::getEnabledApps();
+		return new OC_OCS_Result($result);
 	}
 
 	public static function getUserPublickey($parameters) {
diff --git a/ocs/routes.php b/ocs/routes.php
index d6ee589df6..5e4758fb70 100644
--- a/ocs/routes.php
+++ b/ocs/routes.php
@@ -17,4 +17,5 @@ OC_API::register('get', '/privatedata/getattribute/{app}', array('OC_OCS_Private
 OC_API::register('get', '/privatedata/getattribute/{app}/{key}', array('OC_OCS_Privatedata', 'get'), 'ocs', OC_API::USER_AUTH);
 OC_API::register('post', '/privatedata/setattribute/{app}/{key}', array('OC_OCS_Privatedata', 'set'), 'ocs', OC_API::USER_AUTH);
 OC_API::register('post', '/privatedata/deleteattribute/{app}/{key}', array('OC_OCS_Privatedata', 'delete'), 'ocs', OC_API::USER_AUTH);
-
+// cloud
+OC_API::register('get', '/cloud/capabilities', array('OC_OCS_Cloud', 'getCapabilities'), 'ocs', OC_API::USER_AUTH);
\ No newline at end of file
-- 
GitLab