Simple Linux Panel
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.
mdserver-web/web/admin/user_login_check.py

46 lines
1.6 KiB

7 months ago
# coding:utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
6 months ago
from flask import render_template
from flask import Response
5 months ago
from flask import request
6 months ago
7 months ago
from functools import wraps
6 months ago
from admin import session
from admin.common import isLogined
6 months ago
import thisdb
6 months ago
7 months ago
def panel_login_required(func):
6 months ago
@wraps(func)
7 months ago
def wrapper(*args, **kwargs):
5 months ago
# 面板API调用检查
app_id = request.headers.get('App-Id','')
app_secret = request.headers.get('App-Secret','')
if app_id != '' and app_secret != '':
panel_api = thisdb.getOptionByJson('panel_api', default={"open":True})
if panel_api['open']:
return_code = 404
info = thisdb.getAppByAppId(app_id)
if app_secret != info['app_secret']:
return Response(status=int(return_code))
return func(*args, **kwargs)
6 months ago
if not isLogined():
6 months ago
unauthorized_status = thisdb.getOption('unauthorized_status')
6 months ago
if unauthorized_status == '0':
return render_template('default/path.html')
return Response(status=int(unauthorized_status))
6 months ago
7 months ago
return func(*args, **kwargs)
return wrapper