我已经为烧瓶写了一个装饰器:
def requires_permission(permission):
def decorator(function):
def decorated_function(*args, **kwargs):
if not current_user.is_authenticated:
return redirect('/auth/login')
elif not getattr(current_user.permissions, permission):
return "you need to be an admin", 401
else:
return function(*args, **kwargs)
return decorated_function
return decorator
这用于装饰路线,即
@bp.route('/')
@requires_permission('admin')
def dashboard(company=None):
return "Hello, World!"
这一切都完全正常,但是现在当我尝试通过以下方式访问路线时:
return redirect(url_for('main.dashboard', company = company))
找不到路线。我相信是因为我的装饰器隐藏了底层函数,如果通过URL访问的话,所有函数都可以按预期工作。
任何帮助都将有助于正确地公开底层过程。
谢谢