add working oauth and ldap client
This commit is contained in:
22
passbook/oauth_client/views/dispatcher.py
Normal file
22
passbook/oauth_client/views/dispatcher.py
Normal file
@ -0,0 +1,22 @@
|
||||
"""Dispatch OAuth views to respective views"""
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.views import View
|
||||
|
||||
from passbook.oauth_client.models import OAuthSource
|
||||
from passbook.oauth_client.source_types.manager import MANAGER, RequestKind
|
||||
|
||||
|
||||
class DispatcherView(View):
|
||||
"""Dispatch OAuth Redirect/Callback views to their proper class based on URL parameters"""
|
||||
|
||||
kind = ''
|
||||
|
||||
def dispatch(self, *args, **kwargs):
|
||||
"""Find Source by slug and forward request"""
|
||||
slug = kwargs.get('source_slug', None)
|
||||
if not slug:
|
||||
raise Http404
|
||||
source = get_object_or_404(OAuthSource, slug=slug)
|
||||
view = MANAGER.find(source, kind=RequestKind(self.kind))
|
||||
return view.as_view()(*args, **kwargs)
|
||||
Reference in New Issue
Block a user