12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # coding=utf-8
- from utils.custom_modelviewset import CustomModelViewSet
- from utils.permission import IsAdministratorUser
- from apps.tenant.models import Tenant
- from apps.tenant.employee.models import Employee
- from apps.admin import admin_log
- from apps.log.models import BizLog
- from .serializers import TenantSerializer
- from django.db import transaction
- from utils import response_ok
- from utils.exceptions import CustomError
- from rest_framework.decorators import action
- from apps.WechatTp.models import WechatTp
- class TenantViewSet(CustomModelViewSet):
- permission_classes = [IsAdministratorUser, ]
- queryset = Tenant.objects.all()
- serializer_class = TenantSerializer
- def perform_create(self, serializer):
- super(TenantViewSet, self).perform_create(serializer)
- instance = serializer.instance
- validated_data = serializer.validated_data
- admin_log(self.request.user, BizLog.INSERT, u'添加租户[%s] id=%d' % (instance.name, instance.id), validated_data)
- def perform_update(self, serializer):
- super(TenantViewSet, self).perform_update(serializer)
- instance = serializer.instance
- validated_data = serializer.validated_data
- admin_log(self.request.user, BizLog.INSERT, u'修改租户[%s] id=%d' % (instance.name, instance.id), validated_data)
- @action(methods=['post'], detail=True)
- def super_tenant(self, request, pk):
- username = request.POST.get('username')
- password = request.POST.get('password')
- with transaction.atomic():
- tenant = Tenant.objects.filter(pk=pk).first()
- instance = Employee.create_admin(tenant, username, password)
- admin_log(self.request.user, BizLog.INSERT, u'添加租户超级账号[%s], id=%d' % (instance.name, instance.id))
- return response_ok()
- @action(methods=['post'], detail=True)
- def bind_wechat_tp(self, request, pk):
- tp = WechatTp.getDefault()
- if not tp:
- raise CustomError(u'未找到微信第三方平台!')
- url = tp.getAuthUrl(pk)
- return response_ok(url)
|