Files
pear-admin-flask/applications/service/route_auth.py
T
2021-03-18 22:59:02 +08:00

41 lines
1.2 KiB
Python

from functools import wraps
from flask import abort, request, jsonify, session
from flask_login import login_required
from applications.service.admin_log import admin_log
def PreAuthorize(power: str):
def decorator(func):
@login_required
@wraps(func)
def wrapper(*args, **kwargs):
if not power in session.get('permissions'):
if request.method == 'GET':
abort(403)
else:
return jsonify(code=403, msg="权限不足!")
return func(*args, **kwargs)
return wrapper
return decorator
def PreAuthorizeAndLog(power: str):
def decorator(func):
@login_required
@wraps(func)
def wrapper(*args, **kwargs):
if not power in session['permissions']:
admin_log(request=request, is_access=False)
if request.method == 'GET':
abort(403)
else:
return jsonify(code=403, msg="权限不足!")
admin_log(request=request, is_access=True)
return func(*args, **kwargs)
return wrapper
return decorator