"""Common url routing for application authorization""" from django.conf import settings from django.conf.urls import url, include from django.urls import path from oauth2_provider.views import AuthorizationView from rest_framework_social_oauth2 import views as drf_social_oauth2_views from social_core.utils import setting_name from social_django import views as social_django_views from authorization.views import common as views extra = getattr(settings, setting_name('TRAILING_SLASH'), True) and '/' or '' app_name = 'oauth2' urlpatterns_social_django = [ # authentication / association url(r'^login/(?P[^/]+){0}$'.format(extra), social_django_views.auth, name='begin'), url(r'^complete/(?P[^/]+){0}$'.format(extra), social_django_views.complete, name='complete'), # disconnection url(r'^disconnect/(?P[^/]+){0}$'.format(extra), social_django_views.disconnect, name='disconnect'), url(r'^disconnect/(?P[^/]+)/(?P\d+){0}$' .format(extra), social_django_views.disconnect, name='disconnect_individual'), ] urlpatterns_rest_framework_social_oauth2 = [ url(r'^authorize/?$', AuthorizationView.as_view(), name="authorize"), url('', include('social_django.urls', namespace="social")), url(r'^invalidate-sessions/?$', drf_social_oauth2_views.invalidate_sessions, name="invalidate_sessions") ] urlpatterns_api = [ # sign up path('social/signup/', views.SocialSignUpView.as_view(), name='signup-social'), path('signup/', views.SignUpView.as_view(), name='signup'), # sign in path('login/username/', views.LoginByUsernameView.as_view(), name='login-username'), path('login/email/', views.LoginByEmailView.as_view(), name='login-email'), # for admin sign in page path('token/', drf_social_oauth2_views .TokenView.as_view(), name="token"), # logout path('logout/', views.LogoutView.as_view(), name="logout"), path('revoke-token/', views.RevokeTokenView.as_view(), name="revoke-token"), ] urlpatterns = urlpatterns_api + \ urlpatterns_social_django + \ urlpatterns_rest_framework_social_oauth2