1234567891011121314151617181920212223242526272829303132 |
- from flask import g
- from public import app
- from functools import wraps
- from libs.tools import json_response
- def with_app_context(func):
- @wraps(func)
- def wrapper(*args, **kwargs):
- with app.app_context():
- return func(*args, **kwargs)
- return wrapper
- def require_permission(str_code):
- def decorate(func):
- @wraps(func)
- def wrapper(*args, **kwargs):
- if not g.user.is_supper:
- or_list = [x.strip() for x in str_code.split('|')]
- for or_item in or_list:
- and_set = {x.strip() for x in or_item.split('&')}
- if and_set.issubset(g.user.permissions):
- break
- else:
- return json_response(message='Permission denied'), 403
- return func(*args, **kwargs)
- return wrapper
- return decorate
|