2025-11-11 14:41:23 +08:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
# @Author: Owl
|
|
|
|
|
# @Date: 2025/11/10 18:12
|
|
|
|
|
# @Description:
|
2025-11-15 15:03:22 +08:00
|
|
|
import json
|
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
import requests
|
2025-11-11 14:41:23 +08:00
|
|
|
from flask import Flask, request
|
|
|
|
|
from app.cross_eva_views import app
|
2025-11-15 15:03:22 +08:00
|
|
|
from app.user_worker import *
|
2025-11-11 14:41:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/route', methods=['GET'])
|
|
|
|
|
def query_route():
|
|
|
|
|
return query_host_by_nodeid(dict(request.args))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#输入userno
|
|
|
|
|
#输入password(MD5)
|
|
|
|
|
#返回token
|
2025-11-15 15:03:22 +08:00
|
|
|
@app.route('/api/login', methods=['POST'])
|
2025-11-11 14:41:23 +08:00
|
|
|
def login():
|
2025-11-15 15:03:22 +08:00
|
|
|
ip = request.remote_addr
|
|
|
|
|
params = request.get_json()
|
|
|
|
|
city_name = get_province_by_ip(ip)
|
|
|
|
|
params['ip'] = ip
|
|
|
|
|
params['city_name'] = city_name
|
|
|
|
|
return do_login(params)
|
2025-11-11 14:41:23 +08:00
|
|
|
|
|
|
|
|
#输入token
|
|
|
|
|
#返回有操作权限的资源列表
|
|
|
|
|
@app.route('/api/authentication', methods=['GET'])
|
|
|
|
|
def authentication():
|
|
|
|
|
token = request.headers.get('token')
|
|
|
|
|
if not token:
|
|
|
|
|
token = None
|
|
|
|
|
return do_authentication(dict(request.args), token)
|
|
|
|
|
|
|
|
|
|
#userno
|
|
|
|
|
#返回用户基础信息
|
|
|
|
|
@app.route('/api/get_user_info', methods=['GET'])
|
|
|
|
|
def get_user_info():
|
|
|
|
|
token = request.headers.get('token')
|
|
|
|
|
if not token:
|
|
|
|
|
token = None
|
|
|
|
|
return do_get_user_info(dict(request.args), token)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/rerun')
|
|
|
|
|
def api_list():
|
|
|
|
|
return app.send_static_file('rerun.html')
|
|
|
|
|
# return 'Hello, World!'
|
|
|
|
|
|
|
|
|
|
@app.route('/rerun/set', methods=['GET'])
|
|
|
|
|
def set_rerun():
|
|
|
|
|
return set_rerun_dates(dict(request.args))
|
|
|
|
|
|
|
|
|
|
@app.route('/rerun/del', methods=['GET'])
|
|
|
|
|
def del_rerun():
|
|
|
|
|
return clear_rerun_dates(dict(request.args))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/rerun/get', methods=['GET'])
|
|
|
|
|
def get_rerun():
|
|
|
|
|
return get_rerun_dates(dict(request.args))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/modify_password', methods=['POST'])
|
|
|
|
|
def modify_password():
|
2025-11-15 15:03:22 +08:00
|
|
|
ip = request.remote_addr
|
|
|
|
|
params = request.get_json()
|
|
|
|
|
city_name = get_province_by_ip(ip)
|
|
|
|
|
params['ip'] = ip
|
|
|
|
|
params['city_name'] = city_name
|
|
|
|
|
return do_modify_password(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/query_all_users', methods=['GET'])
|
|
|
|
|
def query_all_users_controller():
|
|
|
|
|
return query_user_list(dict(request.args))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_province_by_ip(ip):
|
|
|
|
|
try:
|
|
|
|
|
response = requests.get(f'http://whois.pconline.com.cn/ipJson.jsp?ip={ip}&json=true')
|
|
|
|
|
ip_info = json.loads(response.content.strip().decode('gbk'))
|
|
|
|
|
addr = ip_info['addr']
|
|
|
|
|
if addr == ' 本机地址':
|
|
|
|
|
addr = '本机'
|
|
|
|
|
return addr.split(' ')[0]
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logging.error(e)
|
|
|
|
|
return '未知'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/modify_user', methods=['POST'])
|
|
|
|
|
def modify_user_controller():
|
|
|
|
|
params = request.get_json()
|
|
|
|
|
ip = request.remote_addr
|
|
|
|
|
city_name = get_province_by_ip(ip)
|
|
|
|
|
params['ip'] = ip
|
|
|
|
|
params['city_name'] = city_name
|
|
|
|
|
return modify_user(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/delete_user', methods=['GET'])
|
|
|
|
|
def delete_user_controller():
|
|
|
|
|
params = dict(request.args)
|
|
|
|
|
ip = request.remote_addr
|
|
|
|
|
city_name = get_province_by_ip(ip)
|
|
|
|
|
params['ip'] = ip
|
|
|
|
|
params['city_name'] = city_name
|
|
|
|
|
return del_user(params)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/add_user', methods=['POST'])
|
|
|
|
|
def add_user_controller():
|
|
|
|
|
params = request.get_json()
|
|
|
|
|
ip = request.remote_addr
|
|
|
|
|
city_name = get_province_by_ip(ip)
|
|
|
|
|
params['ip'] = ip
|
|
|
|
|
params['city_name'] = city_name
|
|
|
|
|
return create_user(params)
|