summaryrefslogtreecommitdiffstats
path: root/forum/authentication/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'forum/authentication/__init__.py')
-rwxr-xr-xforum/authentication/__init__.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/forum/authentication/__init__.py b/forum/authentication/__init__.py
new file mode 100755
index 00000000..75099303
--- /dev/null
+++ b/forum/authentication/__init__.py
@@ -0,0 +1,27 @@
+import re
+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()
+
+ context.id = id #add extra field to context
+ self.context = context
+
+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[name])) for name in consumers.keys()
+ if name in contexts
+ ])