diff --git a/apps/rpm/views.py b/apps/rpm/views.py index cb758b8c..3de3c677 100644 --- a/apps/rpm/views.py +++ b/apps/rpm/views.py @@ -1,4 +1,3 @@ - from apps.rpm.filters import RpjFilterSet from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj from apps.rpm.serializers import (RcertificateCreateUpdateSerializer, @@ -8,7 +7,7 @@ from apps.rpm.serializers import (RcertificateCreateUpdateSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer) from apps.rpm.services import sync_to_rep -from apps.system.models import Dictionary, Post, UserPost +from apps.system.models import Dictionary, Post, User, UserPost from apps.system.serializers import UserCreateSerializer from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from rest_framework.mixins import ListModelMixin, DestroyModelMixin, UpdateModelMixin @@ -17,6 +16,7 @@ from rest_framework.response import Response from django.contrib.auth.hashers import make_password from django.db import transaction from rest_framework.exceptions import ParseError +from django.db.models import Q # Create your views here. @@ -43,12 +43,17 @@ class RpartyViewSet(CustomModelViewSet): """ obj = self.get_object() post = Post.objects.get(code='remployee') + serializer = RpartyAssignSerializer(data=request.data) + serializer.is_valid(raise_exception=True) + vdata = serializer.validated_data if obj.admin: ins = obj.admin else: + if User.objects.get_queryset(all=True).filter(Q(phone=vdata['phone']) | Q(username=vdata['username'])).exist(): + raise ParseError('该账号已存在,请选择绑定') serializer = UserCreateSerializer(data=request.data) serializer.is_valid(raise_exception=True) - ins = serializer.save(type='remployee', password=make_password('0000')) + serializer.save(type='remployee', password=make_password('0000')) obj.admin = ins obj.save() # 岗位设置为相关方岗位 diff --git a/apps/third/views_d.py b/apps/third/views_d.py index babc153e..08f9b4bb 100644 --- a/apps/third/views_d.py +++ b/apps/third/views_d.py @@ -117,6 +117,7 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom """ 三方设备接口 """ + perms_map = {'get': '*', 'put': 'tdevice.update', 'delete': 'tdevice.delete'} queryset = TDevice.objects.all() serializer_class = TDeviceSerializer update_serializer_class = TDeviceUpdateSerializer