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 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, \
PermissionViewSet, RoleViewSet, PostViewSet, \
DictTypeViewSet, DictViewSet
@ -23,6 +23,7 @@ router.register('ptask_result', PTaskResultViewSet, basename="ptask_result")
# router.register('qtask_result', QTaskResultViewSet, basename="qtask_result")
router.register('user_post', UserPostViewSet, basename='user_post')
router.register('post_role', PostRoleViewSet, basename='post_role')
router.register('apk', ApkViewSet, basename='apk')
router2 = routers.DefaultRouter()
router2.register('file', FileViewSet, basename='file')
@ -30,6 +31,5 @@ router2.register('file', FileViewSet, basename='file')
urlpatterns = [
path(API_BASE_URL, include(router.urls)),
path(API_BASE_URL + 'task/', TaskList.as_view()),
path(API_BASE_URL + 'apk/', ApkView.as_view()),
path('api/', include(router2.urls)),
]

View File

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