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

# coding:utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
from flask import render_template
from flask import Response
from flask import request
from functools import wraps
from admin import session
from admin.common import isLogined
import thisdb
def panel_login_required(func):
@wraps(func)
def wrapper(*args, **kwargs):
# 面板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)
if not isLogined():
unauthorized_status = thisdb.getOption('unauthorized_status')
if unauthorized_status == '0':
return render_template('default/path.html')
return Response(status=int(unauthorized_status))
return func(*args, **kwargs)
return wrapper