From 02449c83365fae8d5a47b001b18605478122bd86 Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Tue, 9 Aug 2016 10:21:51 +0200
Subject: [PATCH] Move getCapabilities over to Core

---
 core/Application.php              |  3 +++
 core/Controller/OCSController.php | 27 +++++++++++++++++++++++++--
 core/routes.php                   |  3 +++
 lib/private/OCS/Cloud.php         | 16 ----------------
 ocs/routes.php                    |  7 -------
 5 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/core/Application.php b/core/Application.php
index a0deaff2b93..e8c924432d1 100644
--- a/core/Application.php
+++ b/core/Application.php
@@ -186,6 +186,9 @@ class Application extends App {
 		$container->registerService('TwoFactorAuthManager', function(SimpleContainer $c) {
 			return $c->query('ServerContainer')->getTwoFactorAuthManager();
 		});
+		$container->registerService('OC\CapabilitiesManager', function(SimpleContainer $c) {
+			return $c->query('ServerContainer')->getCapabilitiesManager();
+		});
 	}
 
 }
diff --git a/core/Controller/OCSController.php b/core/Controller/OCSController.php
index 278a16186bf..750ab37eb88 100644
--- a/core/Controller/OCSController.php
+++ b/core/Controller/OCSController.php
@@ -1,5 +1,24 @@
 <?php
-
+/**
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 namespace OC\Core\Controller;
 
 use OC\CapabilitiesManager;
@@ -26,6 +45,10 @@ class OCSController extends \OCP\AppFramework\OCSController {
 		$this->capabilitiesManager = $capabilitiesManager;
 	}
 
+	/**
+	 * @NoAdminRequired
+	 * @return DataResponse
+	 */
 	public function getCapabilities() {
 		$result = [];
 		list($major, $minor, $micro) = \OCP\Util::getVersion();
@@ -41,4 +64,4 @@ class OCSController extends \OCP\AppFramework\OCSController {
 
 		return new DataResponse(['data' => $result]);
 	}
-}
\ No newline at end of file
+}
diff --git a/core/routes.php b/core/routes.php
index 98454946d45..92ce4440ecf 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -53,6 +53,9 @@ $application->registerRoutes($this, [
 		['name' => 'TwoFactorChallenge#showChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'GET'],
 		['name' => 'TwoFactorChallenge#solveChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'POST'],
 	],
+	'ocs' => [
+		['root' => '/cloud', 'name' => 'OCS#getCapabilities', 'url' => '/capabilities', 'verb' => 'GET'],
+	],
 ]);
 
 // Post installation check
diff --git a/lib/private/OCS/Cloud.php b/lib/private/OCS/Cloud.php
index 84fcfe6e512..3a00fa3756e 100644
--- a/lib/private/OCS/Cloud.php
+++ b/lib/private/OCS/Cloud.php
@@ -27,22 +27,6 @@ namespace OC\OCS;
 
 class Cloud {
 
-	public static function getCapabilities() {
-		$result = array();
-		list($major, $minor, $micro) = \OCP\Util::getVersion();
-		$result['version'] = array(
-			'major' => $major,
-			'minor' => $minor,
-			'micro' => $micro,
-			'string' => \OC_Util::getVersionString(),
-			'edition' => \OC_Util::getEditionString(),
-			);
-			
-		$result['capabilities'] = \OC::$server->getCapabilitiesManager()->getCapabilities();
-
-		return new Result($result);
-	}
-	
 	public static function getCurrentUser() {
 		$userObject = \OC::$server->getUserManager()->get(\OC_User::getUser());
 		$data  = array(
diff --git a/ocs/routes.php b/ocs/routes.php
index 0606fe3e309..bb24c79eba7 100644
--- a/ocs/routes.php
+++ b/ocs/routes.php
@@ -84,13 +84,6 @@ API::register(
 	API::USER_AUTH
 	);
 // cloud
-API::register(
-	'get',
-	'/cloud/capabilities',
-	array('OC_OCS_Cloud', 'getCapabilities'),
-	'core',
-	API::USER_AUTH
-	);
 API::register(
 	'get',
 	'/cloud/user',
-- 
GitLab