def default_urlpatterns(provider):

    login_view = import_attribute(provider.package + '.views.oauth_login')
    callback_view = import_attribute(provider.package + '.views.oauth_callback')

    urlpatterns = [
        url('^login/$', login_view, name=provider.id + "_login"),
        url('^login/callback/$', callback_view, name=provider.id + "_callback"),
    ]

    return [url('^' + provider.id + '/', include(urlpatterns))]
Beispiel #2
0
def default_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  ".views.oauth_login")
    callback_view = import_attribute(provider.get_package() +
                                     ".views.oauth_callback")

    urlpatterns = [
        path("login/", login_view, name=provider.id + "_login"),
        path("login/callback/", callback_view, name=provider.id + "_callback"),
    ]

    return [path(provider.get_slug() + "/", include(urlpatterns))]
Beispiel #3
0
def default_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  '.views.oauth2_login')
    callback_view = import_attribute(provider.get_package() +
                                     '.views.oauth2_callback')

    urlpatterns = [
        path('login/', login_view, name=provider.id + "_login"),
        path('login/callback/', callback_view, name=provider.id + "_callback"),
    ]

    return [path(provider.get_slug() + '/', include(urlpatterns))]
Beispiel #4
0
def default_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  ".views.saml2_login")
    acs_view = import_attribute(provider.get_package() + ".views.saml2_acs")

    urlpatterns = [
        path("login/", login_view, name=provider.id + "_login"),
        # TODO: change to login/acs to keep allauth convention
        path("acs/", acs_view, name=provider.id + "_acs"),
    ]

    return [path(provider.get_slug() + "/", include(urlpatterns))]
Beispiel #5
0
def default_urlpatterns(provider):

    login_view = import_attribute(provider.package + '.views.oauth_login')
    callback_view = import_attribute(provider.package +
                                     '.views.oauth_callback')

    urlpatterns = [
        url('^login/$', login_view, name=provider.id + "_login"),
        url('^login/callback/$', callback_view,
            name=provider.id + "_callback"),
    ]

    return [url('^' + provider.id + '/', include(urlpatterns))]
Beispiel #6
0
def qq_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  '.views.oauth2_login')
    callback_view = import_attribute(provider.get_package() +
                                     '.views.oauth2_callback')

    urlpatterns = [
        url(r'^login/$', login_view, name=provider.id + "_login"),
        # qq的回调链接验证十分严格,不能有斜线结尾,因此需要修改
        url(r'^login/callback$', callback_view,
            name=provider.id + "_callback"),
    ]

    return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
Beispiel #7
0
def default_urlpatterns(provider):
    package = provider.get_package()

    login_view = import_attribute(package + '.views.login')
    callback_view = import_attribute(package + '.views.callback')
    logout_view = import_attribute(package + '.views.logout')

    urlpatterns = [
        url('^login/$', login_view, name=provider.id + '_login'),
        url('^login/callback/$', callback_view,
            name=provider.id + '_callback'),
        url('^logout/$', logout_view, name=provider.id + '_logout'),
    ]

    return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
Beispiel #8
0
def default_urlpatterns(provider, version):
    import_attribute_tpl = partial(
        "{package}.views.{version}_oauth2_{kind}".format,
        package=provider.get_package(),
        version=version,
    )
    login_view = import_attribute(import_attribute_tpl(kind="login"))
    callback_view = import_attribute(import_attribute_tpl(kind="callback"))

    urlpatterns = [
        path("login/", login_view, name=f"{provider.id}_login"),
        path("login/callback/", callback_view, name=f"{provider.id}_callback"),
    ]

    return [path(f"{provider.get_slug()}/", include(urlpatterns))]
Beispiel #9
0
def default_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  '.views.oauth2_login')
    callback_view = import_attribute(provider.get_package() +
                                     '.views.oauth2_callback')

    urlpatterns = [
        url('^login/$', login_view, name=provider.id + "_login"),
        url('^login/callback/$', callback_view,
            name=provider.id + "_callback"),
        url('^login/callback/(?P<action>[^/]+)$',
            keycloak_admin,
            name=provider.id + "_admin"),
    ]

    return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
def customized_urlpatterns(provider):
    login_view = import_attribute(provider.get_package() +
                                  '.views.oauth2_login')
    callback_view = import_attribute(provider.get_package() +
                                     '.views.oauth2_callback')

    urlpatterns = [
        path('login/<str:client_identifier>/',
             login_view,
             name=provider.id + "_login"),
        path('login/callback/<str:client_identifier>/',
             callback_view,
             name=provider.id + "_callback"),
    ]

    return [path(provider.get_slug() + '/', include(urlpatterns))]
Beispiel #11
0
def default_urlpatterns(provider):
    login_view = import_attribute(
        provider.get_package() + '.views.saml_login')

    urlpatterns = [
        url('^login/$',
            login_view, name=provider.id + "_login"),
    ]

    return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
Beispiel #12
0
    def USERNAME_VALIDATORS(self):
        from django.core.exceptions import ImproperlyConfigured
        from allauth.utils import import_attribute
        from allauth.utils import get_user_model

        path = self._setting("USERNAME_VALIDATORS", None)
        if path:
            ret = import_attribute(path)
            if not isinstance(ret, list):
                raise ImproperlyConfigured("ACCOUNT_USERNAME_VALIDATORS is expected to be a list")
        else:
            ret = get_user_model()._meta.get_field(self.USER_MODEL_USERNAME_FIELD).validators
        return ret
    def USERNAME_VALIDATORS(self):
        from django.core.exceptions import ImproperlyConfigured
        from allauth.utils import import_attribute
        from allauth.utils import get_user_model

        path = self._setting('USERNAME_VALIDATORS', None)
        if path:
            ret = import_attribute(path)
            if not isinstance(ret, list):
                raise ImproperlyConfigured(
                    'ACCOUNT_USERNAME_VALIDATORS is expected to be a list')
        else:
            ret = get_user_model()._meta.get_field(
                self.USER_MODEL_USERNAME_FIELD).validators
        return ret
    def USERNAME_VALIDATORS(self):
        from django.core.exceptions import ImproperlyConfigured
        from allauth.utils import import_attribute
        from allauth.utils import get_user_model

        validators = self._setting('USERNAME_VALIDATORS', None)
        ret = []
        if validators:
            if not isinstance(validators, list):
                raise ImproperlyConfigured(
                    'ACCOUNT_USERNAME_VALIDATORS is expected to be a list')
            for validator in validators:
                ret.append(import_attribute(validator))
        else:
            if self.USER_MODEL_USERNAME_FIELD is not None:
                ret = get_user_model()._meta.get_field(
                    self.USER_MODEL_USERNAME_FIELD).validators
        return ret
Beispiel #15
0
    def register_settings(self, provider):
        if isinstance(provider, str):
            provider_path = provider
            provider = {}
        elif isinstance(provider, dict):
            provider = provider.copy()
            provider_path = provider.pop('class')

        provider_class = None
        
        try:
            provider_module = importlib.import_module(provider_path + '.provider')
        except ImportError:
            try:
                provider_class = import_attribute(provider_path)
            except (ImportError, AttributeError):
                provider_module = importlib.import_module(provider_path)
            else:
                if inspect.ismodule(provider_class):
                    provider_module = provider_class
                    provider_class = None

        if provider_class is None:
            if hasattr(provider_module, 'provider_classes'):
                provider_classes = provider_module.provider_classes
            else:
                from .base import Provider
                provider_classes = [
                    # obj for name, obj in inspect.getmembers(provider_module)
                    # if inspect.isclass(obj) and issubclass(obj, Provider)
                ]

            if len(provider_classes) > 1:
                raise ValueError(f"Too many Provider Types in {provider_path}")

            if not provider_classes:
                raise ValueError(f"No provider type in {provider_path}")


            provider_class = provider_classes[0]

        return self.register(provider_class, **provider)
Beispiel #16
0
 def get_adapter(self, request):
     return import_attribute(settings.SOCIALACCOUNT_ADAPTER)(request)
Beispiel #17
0
The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from . import views
from django.urls import path, include
from allauth.utils import import_attribute
from .spec.providers.vk.provider import VKProvider
from allauth.account import views as account_views

login_view = import_attribute(VKProvider.get_package() + '.views.oauth2_login')
callback_view = import_attribute(VKProvider.get_package() +
                                 '.views.oauth2_callback')

urlpatterns = [
    path('', views.login, name='account_login'),
    path('vk/', login_view, name='vk_login'),
    path('vk/callback/', callback_view, name="vk_callback"),
    path('logout/', account_views.logout, name='account_logout'),
]
Beispiel #18
0
def get_adapter(request=None):
    # app_settings_adapter.LOGOUT_REDIRECT_URL = app_settings.LOGOUT_REDIRECT_URL
    return import_attribute(app_settings_adapter.ADAPTER)(request)
Beispiel #19
0
def get_adapter(request=None):
    return import_attribute(app_settings.ADAPTER)(request)
Beispiel #20
0
def get_queue_backend():
    """
    Returns instance queue backend that is active in the project.
    """
    return import_attribute(settings.QUEUE_BACKEND)()
Beispiel #21
0
def get_adapter():
    return import_attribute(app_settings.ADAPTER)()
Beispiel #22
0
def get_adapter():
    return import_attribute(app_settings.ADAPTER)()