pengzhibo168 преди 5 години
родител
ревизия
f8eda849a2
променени са 2 файла, в които са добавени 54 реда и са изтрити 20 реда
  1. 7 7
      Ansjer/local_settings.py
  2. 47 13
      Controller/PushDeploy.py

+ 7 - 7
Ansjer/local_settings.py

@@ -73,14 +73,14 @@ TEMPLATES = [
 WSGI_APPLICATION = 'Ansjer.local_wsgi.application'
 
 # 服务器类型
-DATABASE_DATA = 'AnsjerLocal'
-SERVER_HOST = '192.168.136.45'
-DATABASES_USER = 'ansjer'
-DATABASES_PASS = '1234'
 # DATABASE_DATA = 'AnsjerLocal'
-# SERVER_HOST = 'localhost'
-# DATABASES_USER = 'root'
-# DATABASES_PASS = '123456'
+# SERVER_HOST = '192.168.136.45'
+# DATABASES_USER = 'ansjer'
+# DATABASES_PASS = '1234'
+DATABASE_DATA = 'AnsjerLocal'
+SERVER_HOST = 'localhost'
+DATABASES_USER = 'root'
+DATABASES_PASS = '123456'
 DATABASES = {'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': DATABASE_DATA,

+ 47 - 13
Controller/PushDeploy.py

@@ -11,6 +11,7 @@
 @file: PushDeploy.py
 @Contact: pzb3076@163.com
 """
+import os
 import json
 import math
 
@@ -24,7 +25,7 @@ from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 import time
-
+from Ansjer.config import BASE_DIR
 
 class PushDeployView(View):
     @method_decorator(csrf_exempt)
@@ -53,28 +54,41 @@ class PushDeployView(View):
             return response.json(tko.code)
         userID = tko.userID
         if operation == 'adminAdd':
-            return self.do_add(request_dict, response,userID)
+            return self.do_add(request_dict, response,userID,request)
         elif operation == 'adminDelete':
             return self.do_delete(request_dict, response,userID)
         elif operation == 'adminUpdate':
-            return self.do_update(request_dict, response,userID)
+            return self.do_update(request_dict, response,userID, request)
         elif operation == 'adminQuery':
             return self.do_query(request_dict,response, userID)
         else:
             return response.json(414)
 
-    def do_add(self, request_dict, response, userID):
+    def do_add(self, request_dict, response, userID, request):
         own_perm = ModelService.check_perm(userID, 40)
         if not own_perm:
             return response.json(404)
         name = request_dict.get('name', None)
         key = request_dict.get('key', None)
         secret = request_dict.get('secret', None)
-        pem = request_dict.get('pem', None)
         type = request_dict.get('type', None)
         nowTime = int(time.time())
+        f = request.FILES.get('file', None)
+        rv_path=''
+        if f is not None:
+            rv_path = 'static/pem/' + f.name
+            path = os.path.join(BASE_DIR, rv_path)
+            try:
+                if os.path.exists(path):
+                    os.remove(path)
+                with open(path, 'wb+') as destination:
+                    for chunk in f.chunks():
+                        destination.write(chunk)
+            except Exception as e:
+                print('error:' + repr(e))
+                return response.json(700, {'details': repr(e)})
         try:
-            pushDeployModel.objects.create(addTime=nowTime, updTime=nowTime, name=name, key=key, secret=secret,pem=pem,
+            pushDeployModel.objects.create(addTime=nowTime, updTime=nowTime, name=name, key=key, secret=secret, pem=rv_path,
                                            type=type)
         except Exception as e:
             return response.json(10, repr(e))
@@ -118,7 +132,7 @@ class PushDeployView(View):
         else:
             return response.json(404)
 
-    def do_update(self, request_dict, response,userID):
+    def do_update(self, request_dict, response,userID,request):
         own_perm = ModelService.check_perm(userID, 30)
         if not own_perm:
             return response.json(404)
@@ -127,13 +141,33 @@ class PushDeployView(View):
         name = request_dict.get('name', None)
         key = request_dict.get('key', None)
         secret = request_dict.get('secret', None)
-        pem = request_dict.get('pem', None)
         type = request_dict.get('type', None)
-        try:
-            pushDeployModel.objects.filter(id=id).update(updTime=nowTime, name=name, key=key, secret=secret,pem=pem,
-                                                         type=type)
-        except Exception as e:
-            return response.json(10, repr(e))
+        f = request.FILES.get('file', None)
+        if f is not None:
+            rv_path = 'static/pem/' + f.name
+            path = os.path.join(BASE_DIR, rv_path)
+            try:
+                if os.path.exists(path):
+                    os.remove(path)
+                with open(path, 'wb+') as destination:
+                    for chunk in f.chunks():
+                        destination.write(chunk)
+            except Exception as e:
+                print('error:' + repr(e))
+                return response.json(700, {'details': repr(e)})
+            try:
+                pushDeployModel.objects.filter(id=id).update(updTime=nowTime, name=name, key=key, secret=secret,
+                                                             pem=rv_path,
+                                                             type=type)
+            except Exception as e:
+                return response.json(10, repr(e))
+        else:
+            try:
+                pushDeployModel.objects.filter(id=id).update(updTime=nowTime, name=name, key=key, secret=secret,
+                                                             type=type)
+            except Exception as e:
+                return response.json(10, repr(e))
+
         # res = list(pushDeployModel.objects.values())
         return response.json(0, {'updTime': nowTime})