web/application.py
changeset 2685 0518ca8f63e3
parent 2666 c6c832d32936
child 2705 30bcdbd92820
--- a/web/application.py	Tue Aug 04 18:43:55 2009 +0200
+++ b/web/application.py	Tue Aug 04 18:44:24 2009 +0200
@@ -17,7 +17,7 @@
 from cubicweb import set_log_methods, cwvreg
 from cubicweb import (
     ValidationError, Unauthorized, AuthenticationError, NoSelectableObject,
-    RepositoryError)
+    RepositoryError, CW_EVENT_MANAGER)
 from cubicweb.web import LOGGER, component
 from cubicweb.web import (
     StatusResponse, DirectResponse, Redirect, NotFound,
@@ -41,6 +41,10 @@
         if self.session_time:
             assert self.cleanup_session_time < self.session_time
             assert self.cleanup_anon_session_time < self.session_time
+        self.set_authmanager()
+        CW_EVENT_MANAGER.bind('after-source-reload', self.set_authmanager)
+
+    def set_authmanager(self):
         self.authmanager = self.vreg['components'].select('authmanager')
 
     def clean_sessions(self):
@@ -239,7 +243,11 @@
             self.publish = self.main_publish
         # instantiate session and url resolving helpers
         self.session_handler = session_handler_fact(self)
-        self.url_resolver = vreg['components'].select('urlpublisher')
+        self.set_urlresolver()
+        CW_EVENT_MANAGER.bind('after-source-reload', self.set_urlresolver)
+
+    def set_urlresolver(self):
+        self.url_resolver = self.vreg['components'].select('urlpublisher')
 
     def connect(self, req):
         """return a connection for a logged user object according to existing