]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/authentication/__init__.py
be able to pass additional context to the _edit_question view
[osqa.git] / forum / authentication / __init__.py
old mode 100755 (executable)
new mode 100644 (file)
index e83ba87..79c47a8
@@ -1,27 +1,34 @@
-import re\r
-from forum.modules import get_modules_script_classes\r
-from forum.authentication.base import AuthenticationConsumer, ConsumerTemplateContext\r
-\r
-class ConsumerAndContext():\r
-    def __init__(self, id, consumer, context):\r
-        self.id = id\r
-        self.consumer = consumer()\r
-\r
-        context.id = id\r
-        self.context = context\r
-\r
-consumers = dict([\r
-            (re.sub('AuthConsumer$', '', name).lower(), cls) for name, cls\r
-            in get_modules_script_classes('authentication', AuthenticationConsumer).items()\r
-            if not re.search('AbstractAuthConsumer$', name)\r
-        ])\r
-\r
-contexts = dict([\r
-            (re.sub('AuthContext$', '', name).lower(), cls) for name, cls\r
-            in get_modules_script_classes('authentication', ConsumerTemplateContext).items()\r
-        ])\r
-\r
-AUTH_PROVIDERS = dict([\r
-            (name, ConsumerAndContext(name, consumers[name], contexts[name])) for name in consumers.keys()\r
-            if name in contexts\r
-        ])
\ No newline at end of file
+import re
+import django.dispatch
+from forum.modules import get_modules_script_classes
+from forum.authentication.base import AuthenticationConsumer, ConsumerTemplateContext
+
+class ConsumerAndContext:
+    def __init__(self, id, consumer, context):
+        self.id = id
+        self._consumer = consumer
+
+        if context:
+            context.id = id
+        self.context = context
+
+    @property
+    def consumer(self):
+        return self._consumer()
+
+consumers = dict([
+            (re.sub('AuthConsumer$', '', name).lower(), cls) for name, cls
+            in get_modules_script_classes('authentication', AuthenticationConsumer).items()
+            if not re.search('AbstractAuthConsumer$', name)
+        ])
+
+contexts = dict([
+            (re.sub('AuthContext$', '', name).lower(), cls) for name, cls
+            in get_modules_script_classes('authentication', ConsumerTemplateContext).items()
+        ])
+
+AUTH_PROVIDERS = dict([
+            (name, ConsumerAndContext(name, consumers[name], contexts.get(name, None))) for name in consumers.keys()
+        ])
+
+