gault-millau/apps/authorization/urls/common.py

53 lines
2.1 KiB
Python

"""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 = 'social'
urlpatterns_social_django = [
# authentication / association
url(r'^login/(?P<backend>[^/]+){0}$'.format(extra), social_django_views.auth,
name='begin'),
url(r'^complete/(?P<backend>[^/]+){0}$'.format(extra), social_django_views.complete,
name='complete'),
# disconnection
url(r'^disconnect/(?P<backend>[^/]+){0}$'.format(extra), social_django_views.disconnect,
name='disconnect'),
url(r'^disconnect/(?P<backend>[^/]+)/(?P<association_id>\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'),
# 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