OSDN Git Service

fix
[bytom/vapor.git] / toolbar / tel_test_admin / views.py
1 from flask import Blueprint, jsonify
2 from functools import wraps
3 from flask import request
4 from uuid import uuid4
5 import json
6 tele = Blueprint('tele', __name__)
7
8 # ć…šć±€ć˜é‡
9 LOGINED_UUID = []
10 NODE_LIST = [
11     {
12         "IP": "52.82.39.131",
13         "level": "high",
14         "is_connect": True
15     },
16     {
17         "IP": "52.82.39.21",
18         "level": "high",
19         "is_connect": True
20     },
21 {
22         "IP": "52.82.25.183",
23         "level": "high",
24         "is_connect": True
25     }
26 ]
27
28 PASSWORD = "123456"
29
30
31 def login_required(func):
32     @wraps(func)
33     def decorator(*args, **kwargs):
34         data = json.loads(request.get_data(as_text=True))
35         session_id = data.get('token')
36         if session_id not in LOGINED_UUID:
37             return jsonify({"code": 400, "msg": "no user", "data": ""})
38         else:
39             return func(data)
40
41     return decorator
42
43
44 @tele.route('/login', methods=["POST"])
45 def login():
46     data = json.loads(request.get_data(as_text=True))
47     password = data["password"]
48     if password != PASSWORD:
49         return jsonify({"code": 400, "msg": "password error", "data": ""})
50     session_id = uuid4()
51     LOGINED_UUID.append(str(session_id))
52     response = jsonify({"code": 200, "msg": "", "data": str(session_id)})
53
54     return response
55
56
57 # @tele.route('/logout', methods=["POST"])
58 # @login_required
59 # def logout():
60 #     response = jsonify({"code": 200, "msg": "", "data": ""})
61 #     response.delete_cookie("tele")
62 #     return response
63
64
65 @tele.route('/get-all-node', methods=["GET","POST"])
66 def get_all_node():
67     return jsonify({"code": 200, "msg": "", "data": NODE_LIST})
68
69
70 @tele.route('/set-node-permission', methods=["POST"])
71 @login_required
72 def set_node_permission(data):
73     ip = data.get('ip')
74     level = data.get('level')
75     for i in NODE_LIST:
76         if i["IP"] == ip:
77             i["level"] = level
78             return jsonify({"code": 200, "msg": "", "data": ""})
79     return jsonify({"code": 400, "msg": "no ip", "data": ""})
80
81
82 @tele.route('/set-connect', methods=["POST"])
83 @login_required
84 def set_connect(data):
85     ip = data.get('ip')
86     is_connect = data.get('is_connect')
87     for i in NODE_LIST:
88         if i["IP"] == ip:
89             i["is_connect"] = is_connect
90             return jsonify({"code": 200, "msg": "", "data": ""})
91     return jsonify({"code": 400, "msg": "no ip", "data": ""})