diff options
Diffstat (limited to 'forum/authentication/__init__.py')
-rwxr-xr-x | forum/authentication/__init__.py | 27 |
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 + ]) |