-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()
+ ])
+
+