cross_doctor/app/user_views.py

125 lines
3.1 KiB
Python

# -*- coding: utf-8 -*-
# @Author: Owl
# @Date: 2025/11/10 18:12
# @Description:
import json
import logging
import requests
from flask import Flask, request
from app.cross_eva_views import app
from app.user_worker import *
@app.route('/api/route', methods=['GET'])
def query_route():
return query_host_by_nodeid(dict(request.args))
#输入userno
#输入password(MD5)
#返回token
@app.route('/api/login', methods=['POST'])
def login():
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)
#输入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():
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)