From 57f37c876b59d11dae8b4325bed5fa57de52ecd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Fri, 27 Sep 2013 17:15:26 +0200
Subject: [PATCH] delay middleware registrations

---
 .../dependencyinjection/dicontainer.php             | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/lib/appframework/dependencyinjection/dicontainer.php b/lib/appframework/dependencyinjection/dicontainer.php
index 5487826693..380a0ee6d4 100644
--- a/lib/appframework/dependencyinjection/dicontainer.php
+++ b/lib/appframework/dependencyinjection/dicontainer.php
@@ -40,6 +40,10 @@ use OCP\IServerContainer;
 
 class DIContainer extends SimpleContainer implements IAppContainer{
 
+	/**
+	 * @var array
+	 */
+	private $middleWares;
 
 	/**
 	 * Put your class dependencies in here
@@ -89,6 +93,10 @@ class DIContainer extends SimpleContainer implements IAppContainer{
 			$dispatcher = new MiddlewareDispatcher();
 			$dispatcher->registerMiddleware($c['SecurityMiddleware']);
 
+			foreach($this->middleWares as $middleWare) {
+				$dispatcher->registerMiddleware($middleWare);
+			}
+
 			return $dispatcher;
 		});
 
@@ -125,10 +133,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{
 	 * @return boolean
 	 */
 	function registerMiddleWare(IMiddleWare $middleWare) {
-		/** @var $dispatcher MiddlewareDispatcher */
-		$dispatcher = $this->query('MiddlewareDispatcher');
-		$dispatcher->registerMiddleware($middleWare);
-
+		array_push($this->middleWares, $middleWare);
 	}
 
 	/**
-- 
GitLab