OSDN Git Service

no message
[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
6 tele = Blueprint('tele', __name__)
7
8 # ć…šć±€ć˜é‡
9 LOGINED_UUID = []
10 NODE_LIST = [
11     {
12         "IP": "52.82.39.131",
13         "level": "height",
14         "is_connect": True
15     },
16     {
17         "IP": "52.82.39.21",
18         "level": "height",
19         "is_connect": True
20     }, {
21         "IP": "52.82.123.129",
22         "level": "height",
23         "is_connect": True
24     }
25 ]
26
27 PASSWORD = "123456"
28
29
30 def login_required(func):
31     @wraps(func)
32     def decorator(*args, **kwargs):
33         session_id = request.form.get('token')
34         if not session_id:
35             session_id = request.args.get('token')
36         if session_id not in LOGINED_UUID:
37             return jsonify({"code": 400, "msg": "no user", "data": ""})
38         else:
39             return func(*args, **kwargs)
40
41     return decorator
42
43
44 @tele.route('/login', methods=["POST"])
45 def login():
46     password = request.form.get('password')
47     if password != PASSWORD:
48         return jsonify({"code": 400, "msg": "password error", "data": ""})
49     session_id = uuid4()
50     LOGINED_UUID.append(session_id)
51     response = jsonify({"code": 200, "msg": "", "data": ""})
52     response.set_cookie("tele", str(session_id), max_age=86400)
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"])
66 @login_required
67 def get_all_node():
68     return jsonify({"code": 200, "msg": "", "data": NODE_LIST})
69
70
71 @tele.route('/set-node-permission', methods=["POST"])
72 @login_required
73 def set_node_permission():
74     ip = request.form.get('ip')
75     level = request.form.get('level')
76     for i in NODE_LIST:
77         if i["IP"] == ip:
78             i["level"] = level
79             return jsonify({"code": 200, "msg": "", "data": ""})
80     return jsonify({"code": 400, "msg": "no ip", "data": ""})
81
82
83 @tele.route('/set-connect', methods=["POST"])
84 @login_required
85 def set_connect():
86     ip = request.form.get('ip')
87     is_connect = request.form.get('is_connect')
88     for i in NODE_LIST:
89         if i["IP"] == ip:
90             i["is_connect"] = is_connect
91             return jsonify({"code": 200, "msg": "", "data": ""})
92     return jsonify({"code": 400, "msg": "no ip", "data": ""})