apk get 无需登录

This commit is contained in:
caoqianming 2022-11-02 13:02:43 +08:00
parent faab2f954a
commit 3ee00bdbcf
2 changed files with 26 additions and 13 deletions

View File

@ -1,6 +1,6 @@
from email.mime import base from email.mime import base
from django.urls import path, include from django.urls import path, include
from .views import ApkView, FileViewSet, PTaskViewSet, PTaskResultViewSet, PostRoleViewSet, TaskList, \ from .views import ApkViewSet, FileViewSet, PTaskViewSet, PTaskResultViewSet, PostRoleViewSet, TaskList, \
UserPostViewSet, UserViewSet, DeptViewSet, \ UserPostViewSet, UserViewSet, DeptViewSet, \
PermissionViewSet, RoleViewSet, PostViewSet, \ PermissionViewSet, RoleViewSet, PostViewSet, \
DictTypeViewSet, DictViewSet DictTypeViewSet, DictViewSet
@ -23,6 +23,7 @@ router.register('ptask_result', PTaskResultViewSet, basename="ptask_result")
# router.register('qtask_result', QTaskResultViewSet, basename="qtask_result") # router.register('qtask_result', QTaskResultViewSet, basename="qtask_result")
router.register('user_post', UserPostViewSet, basename='user_post') router.register('user_post', UserPostViewSet, basename='user_post')
router.register('post_role', PostRoleViewSet, basename='post_role') router.register('post_role', PostRoleViewSet, basename='post_role')
router.register('apk', ApkViewSet, basename='apk')
router2 = routers.DefaultRouter() router2 = routers.DefaultRouter()
router2.register('file', FileViewSet, basename='file') router2.register('file', FileViewSet, basename='file')
@ -30,6 +31,5 @@ router2.register('file', FileViewSet, basename='file')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),
path(API_BASE_URL + 'task/', TaskList.as_view()), path(API_BASE_URL + 'task/', TaskList.as_view()),
path(API_BASE_URL + 'apk/', ApkView.as_view()),
path('api/', include(router2.urls)), path('api/', include(router2.urls)),
] ]

View File

@ -13,7 +13,7 @@ from rest_framework.mixins import (CreateModelMixin, DestroyModelMixin,
ListModelMixin, RetrieveModelMixin) ListModelMixin, RetrieveModelMixin)
from rest_framework.parsers import (JSONParser, from rest_framework.parsers import (JSONParser,
MultiPartParser) MultiPartParser)
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated, AllowAny
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
from apps.hrm.models import Employee from apps.hrm.models import Employee
@ -36,7 +36,7 @@ from .serializers import (ApkSerializer, DeptCreateUpdateSerializer, DeptSeriali
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer, RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer, UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
UserPostSerializer, UserUpdateSerializer) UserPostSerializer, UserUpdateSerializer)
from rest_framework.generics import ListCreateAPIView from rest_framework.viewsets import GenericViewSet
# logger.info('请求成功! response_code:{}response_headers:{} # logger.info('请求成功! response_code:{}response_headers:{}
@ -623,23 +623,36 @@ config = configparser.ConfigParser()
# 读取配置文件 # 读取配置文件
filename = os.path.join(settings.BASE_DIR, 'server/conf.ini') filename = os.path.join(settings.BASE_DIR, 'server/conf.ini')
class ApkViewSet(MyLoggingMixin, ListModelMixin, CreateModelMixin, GenericViewSet):
class ApkView(MyLoggingMixin, ListCreateAPIView): perms_map = {'get': '*', 'post': 'apk.upload'}
permission_classes = [IsAuthenticated]
serializer_class = ApkSerializer serializer_class = ApkSerializer
def get(self, request): def get_authenticators(self):
"""获取apk信息 if self.request.method == 'GET':
return []
return super().get_authenticators()
def get_permissions(self):
if self.request.method == 'GET':
return [AllowAny()]
return super().get_permissions()
def list(self, request, *args, **kwargs):
"""
获取apk信息
获取apk信息 获取apk信息
""" """
config.read(filename, encoding='utf-8') config.read(filename, encoding='utf-8')
file = config.get('apk', 'file') file = config.get('apk', 'file')
# if not file.startswith('http'):
# file = settings.BASE_URL + file
return Response({'version': config.get('apk', 'version'), 'file': file}) return Response({'version': config.get('apk', 'version'), 'file': file})
def post(self, request): def create(self, request, *args, **kwargs):
"""
上传apk
上传apk
"""
sr = ApkSerializer(data=request.data) sr = ApkSerializer(data=request.data)
sr.is_valid(raise_exception=True) sr.is_valid(raise_exception=True)
vdata = sr.validated_data vdata = sr.validated_data