71 lines
3.0 KiB
Python
71 lines
3.0 KiB
Python
"""server URL Configuration
|
|
|
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
|
https://docs.djangoproject.com/en/3.0/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 django.conf import settings
|
|
from django.conf.urls.static import static, serve
|
|
from django.contrib import admin
|
|
from django.urls import include, path
|
|
from rest_framework import routers
|
|
from rest_framework.documentation import include_docs_urls
|
|
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
|
TokenRefreshView)
|
|
|
|
from apps.system.views import FileViewSet, LogoutView, Login2View
|
|
from django.views.generic.base import TemplateView
|
|
router = routers.DefaultRouter()
|
|
router.register('file', FileViewSet, basename="file")
|
|
from django.conf.urls import url
|
|
|
|
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
|
|
from rest_framework_simplejwt.views import TokenViewBase
|
|
from apps.system.permission import get_permission_list
|
|
class MyloginSerializer(TokenObtainPairSerializer):
|
|
def validate(self, attrs):
|
|
data = super().validate(attrs)
|
|
|
|
refresh = self.get_token(self.user)
|
|
|
|
data['refresh'] = str(refresh)
|
|
data['access'] = str(refresh.access_token)
|
|
user = self.user
|
|
perms = get_permission_list(user)
|
|
data['user'] = {
|
|
'id': user.id,
|
|
'username': user.username,
|
|
'name': user.name,
|
|
'roles': user.roles.all().values_list('name', flat=True),
|
|
# 'avatar': request._request._current_scheme_host + '/media/' + str(user.image),
|
|
'avatar': user.avatar,
|
|
'perms': perms,
|
|
}
|
|
return data
|
|
|
|
class MyTokenObtainPairView(TokenViewBase):
|
|
serializer_class = MyloginSerializer
|
|
|
|
urlpatterns = [
|
|
path('', TemplateView.as_view(template_name="index.html")),
|
|
path('api/admin/', admin.site.urls),
|
|
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
|
path('api/token2/', Login2View.as_view(), name='token_obtain_2'),
|
|
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
|
path('api/token/black/', LogoutView.as_view(), name='token_black'),
|
|
path('api/system/', include('apps.system.urls')),
|
|
path('api/ability/', include('apps.ability.urls')),
|
|
path('api/supervision/', include('apps.supervision.urls')),
|
|
path('api/docs/', include_docs_urls(title="接口文档",authentication_classes=[], permission_classes=[])),
|
|
path('api/', include(router.urls)),
|
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|