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))]
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))]
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))]
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))]
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))]
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))]
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))]
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))]
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))]
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
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)
def get_adapter(self, request): return import_attribute(settings.SOCIALACCOUNT_ADAPTER)(request)
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'), ]
def get_adapter(request=None): # app_settings_adapter.LOGOUT_REDIRECT_URL = app_settings.LOGOUT_REDIRECT_URL return import_attribute(app_settings_adapter.ADAPTER)(request)
def get_adapter(request=None): return import_attribute(app_settings.ADAPTER)(request)
def get_queue_backend(): """ Returns instance queue backend that is active in the project. """ return import_attribute(settings.QUEUE_BACKEND)()
def get_adapter(): return import_attribute(app_settings.ADAPTER)()