You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
5.7 KiB
149 lines
5.7 KiB
2 months ago
|
from flask import session, redirect, url_for, render_template, jsonify, request
|
||
|
|
||
|
from web import APP
|
||
|
from web.utils.auxiliary import login_required, addlog, logger
|
||
|
from web.models import User, MailSetting
|
||
|
|
||
|
@APP.route('/')
|
||
|
def html_system_login():
|
||
|
'''用户登录页面'''
|
||
|
if 'status' in session:
|
||
|
return redirect(url_for('html_system_index'), 302)
|
||
|
return render_template('system/user_login.html')
|
||
|
|
||
|
@APP.route('/system/index')
|
||
|
@login_required
|
||
|
def html_system_index():
|
||
|
'''框架首页'''
|
||
|
return render_template('/system/index.html', username=session['username'])
|
||
|
|
||
|
@APP.route('/api/user/logout')
|
||
|
@login_required
|
||
|
def api_user_logout():
|
||
|
'''用户注销'''
|
||
|
addlog(session.get('username'), session.get('login_ip'), '注销登录成功')
|
||
|
logger.log('INFOR', f"用户注销接口-用户[{session.get('username')}]注销成功")
|
||
|
session.pop('status')
|
||
|
session.pop('username')
|
||
|
session.pop('login_ip')
|
||
|
return redirect(url_for('html_system_login'), 302)
|
||
|
|
||
|
@APP.route('/system/setting')
|
||
|
@login_required
|
||
|
def html_system_setting():
|
||
|
'''用户资料修改'''
|
||
|
user_query = User.query.filter(User.username == session.get('username')).first() # 查询该用户信息
|
||
|
if not user_query:
|
||
|
return redirect(url_for('html_user_login'), 302)
|
||
|
info_dict = {
|
||
|
'username': session.get('username'),
|
||
|
'phone': user_query.phone,
|
||
|
'email': user_query.email,
|
||
|
'remark': user_query.remark
|
||
|
}
|
||
|
return render_template('system/user_setting.html', user=info_dict)
|
||
|
|
||
|
@APP.route('/system/password')
|
||
|
@login_required
|
||
|
def html_system_password():
|
||
|
'''修改用户密码'''
|
||
|
return render_template('system/user_password.html')
|
||
|
|
||
|
@APP.route('/system/usermanager')
|
||
|
@login_required
|
||
|
def html_system_usermanager():
|
||
|
'''用户管理'''
|
||
|
return render_template('system/user_manager.html')
|
||
|
|
||
|
@APP.route('/system/useradd')
|
||
|
@login_required
|
||
|
def html_system_useradd():
|
||
|
'''新增用户'''
|
||
|
return render_template('system/user_add.html')
|
||
|
|
||
|
@APP.route('/system/useredit')
|
||
|
@login_required
|
||
|
def html_system_useredit():
|
||
|
'''修改用户信息'''
|
||
|
username = request.args.get("username")
|
||
|
if session.get('username') != 'root':
|
||
|
return render_template('system/404.html')
|
||
|
if not username:
|
||
|
return render_template('error/404.html')
|
||
|
user_query = User.query.filter(User.username == username).first() # 查询该用户信息
|
||
|
if not user_query:
|
||
|
return redirect(url_for('html_user_login'), 302)
|
||
|
info_dict = {
|
||
|
'username': user_query.username,
|
||
|
'phone': user_query.phone,
|
||
|
'email': user_query.email,
|
||
|
'remark': user_query.remark
|
||
|
}
|
||
|
return render_template('system/user_edit.html', user=info_dict)
|
||
|
|
||
|
@APP.route('/system/login_logs')
|
||
|
@login_required
|
||
|
def html_system_loginlogs():
|
||
|
'''用户日志登录查询页面'''
|
||
|
return render_template('system/user_login_logs.html')
|
||
|
|
||
|
@APP.route('/system/logs')
|
||
|
@login_required
|
||
|
def html_system_logs():
|
||
|
'''用户操作日志查询页面'''
|
||
|
return render_template('system/user_logs.html')
|
||
|
|
||
|
@APP.route('/system/mail')
|
||
|
@login_required
|
||
|
def html_system_mail():
|
||
|
'''邮箱SMTP页面'''
|
||
|
mail_query = MailSetting.query.first()
|
||
|
if not mail_query:
|
||
|
return render_template('system/mail_setting.html', mail={})
|
||
|
info_dict = {
|
||
|
'smtp_ip': mail_query.smtp_ip,
|
||
|
'smtp_port': str(mail_query.smtp_port),
|
||
|
'smtp_username': mail_query.smtp_username,
|
||
|
'smtp_password': mail_query.smtp_password,
|
||
|
'smtp_ssl': mail_query.smtp_ssl,
|
||
|
'address_email': mail_query.address_email
|
||
|
}
|
||
|
return render_template('system/mail_setting.html', mail=info_dict)
|
||
|
|
||
|
|
||
|
@APP.route('/api/system/clear')
|
||
|
@login_required
|
||
|
def api_caching_clear():
|
||
|
return jsonify({'code': 1, 'msg': '服务端缓存清理成功'})
|
||
|
|
||
|
@APP.errorhandler(404)
|
||
|
def page_not_found(e):
|
||
|
return render_template('system/404.html'), 404
|
||
|
|
||
|
@APP.errorhandler(500)
|
||
|
def internal_server_error(e):
|
||
|
return render_template('system/500.html'), 500
|
||
|
|
||
|
@APP.route('/system/init')
|
||
|
@login_required
|
||
|
def api_menu_init():
|
||
|
'''菜单栏目'''
|
||
|
home_menu = {'title': '主页', 'icon': 'fa fa-home', 'href': ''} # 主页菜单
|
||
|
logo_menu = {'title': '看门狗', 'image': url_for('static', filename='images/logo.png'), 'href': ''} # logo菜单
|
||
|
assets_menu = {'title': '资产管理', 'icon': 'fa fa-address-book', 'child': [
|
||
|
{'title': '厂商管理', 'href': url_for('html_src_customer'), 'icon': 'fa fa-tachometer', 'target': '_self'},
|
||
|
{'title': '资产任务管理', 'href': url_for('html_src_task'), 'icon': 'fa fa-globe', 'target': '_self'},
|
||
|
{'title': 'URL管理', 'href': url_for('html_src_urls'), 'icon': 'fa fa-paw', 'target': '_self'},
|
||
|
{'title': '端口服务管理', 'href': url_for('html_src_ports'), 'icon': 'fa fa-cube', 'target': '_self'},
|
||
|
{'title': 'Web漏洞管理', 'href': url_for('html_src_vuls'), 'icon': 'fa fa-user-secret', 'target': '_self'},
|
||
|
]}
|
||
|
system_menu = {'title': '系统管理', 'icon': 'fa fa-gears', 'child': [
|
||
|
{'title': '用户管理', 'href': url_for('html_system_usermanager'), 'icon': 'fa fa-users', 'target': '_self'},
|
||
|
{'title': '日志管理', 'href': '', 'icon': 'fa fa-building-o', 'target': '_self', 'child': [
|
||
|
{'title': '操作日志', 'href': url_for('html_system_logs'), 'icon': 'fa fa-area-chart', 'target': '_self'},
|
||
|
{'title': '登录日志', 'href': url_for('html_system_loginlogs'), 'icon': 'fa fa-bar-chart', 'target': '_self'}
|
||
|
]},
|
||
|
{'title': '邮箱设置', 'href': url_for('html_system_mail'), 'icon': 'fa fa-envelope-o', 'target': '_self'}
|
||
|
]}
|
||
|
menu_dict = {'homeInfo': home_menu, 'logoInfo': logo_menu, 'menuInfo': [assets_menu, system_menu]}
|
||
|
return jsonify(menu_dict)
|