summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_versions/appinfo/routes.php6
-rw-r--r--lib/private/api.php2
-rw-r--r--lib/private/route/router.php16
-rw-r--r--lib/public/route/irouter.php7
4 files changed, 28 insertions, 3 deletions
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index 80fe0e5d617..b9bb00dae55 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -5,11 +5,11 @@
* See the COPYING-README file.
*/
-// Register with the capabilities API
-OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Versions\Capabilities', 'getCapabilities'), 'files_versions', OC_API::USER_AUTH);
-
/** @var $this \OCP\Route\IRouter */
$this->create('core_ajax_versions_preview', '/preview')->action(
function() {
require_once __DIR__ . '/../ajax/preview.php';
});
+
+// Register with the capabilities API
+OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Versions\Capabilities', 'getCapabilities'), 'files_versions', OC_API::USER_AUTH);
diff --git a/lib/private/api.php b/lib/private/api.php
index e9c144564f0..f5576af2ad8 100644
--- a/lib/private/api.php
+++ b/lib/private/api.php
@@ -65,6 +65,7 @@ class OC_API {
$name = strtolower($method).$url;
$name = str_replace(array('/', '{', '}'), '_', $name);
if(!isset(self::$actions[$name])) {
+ $oldCollection = OC::$server->getRouter()->getCurrentCollection();
OC::$server->getRouter()->useCollection('ocs');
OC::$server->getRouter()->create($name, $url)
->method($method)
@@ -72,6 +73,7 @@ class OC_API {
->requirements($requirements)
->action('OC_API', 'call');
self::$actions[$name] = array();
+ OC::$server->getRouter()->useCollection($oldCollection);
}
self::$actions[$name][] = array('app' => $app, 'action' => $action, 'authlevel' => $authLevel);
}
diff --git a/lib/private/route/router.php b/lib/private/route/router.php
index f3a4bc5f3e4..9c973d7ac6a 100644
--- a/lib/private/route/router.php
+++ b/lib/private/route/router.php
@@ -26,6 +26,11 @@ class Router implements IRouter {
protected $collection = null;
/**
+ * @var string
+ */
+ protected $collectionName = null;
+
+ /**
* @var \Symfony\Component\Routing\RouteCollection
*/
protected $root = null;
@@ -160,8 +165,19 @@ class Router implements IRouter {
*/
public function useCollection($name) {
$this->collection = $this->getCollection($name);
+ $this->collectionName = $name;
+ }
+
+ /**
+ * returns the current collection name in use for adding routes
+ *
+ * @return string the collection name
+ */
+ public function getCurrentCollection() {
+ return $this->collectionName;
}
+
/**
* Create a \OC\Route\Route.
*
diff --git a/lib/public/route/irouter.php b/lib/public/route/irouter.php
index 1c003c7b4b9..daa1632e0c8 100644
--- a/lib/public/route/irouter.php
+++ b/lib/public/route/irouter.php
@@ -37,6 +37,13 @@ interface IRouter {
public function useCollection($name);
/**
+ * returns the current collection name in use for adding routes
+ *
+ * @return string the collection name
+ */
+ public function getCurrentCollection();
+
+ /**
* Create a \OCP\Route\IRoute.
*
* @param string $name Name of the route to create.