0

我使用了这里显示的 te 装饰器并根据我的需要对其进行了调整(多个角色) 装饰器检查角色并告诉我是否未获得授权,但它不会像原始装饰器那样将我重定向到我的登录页面。

def login_required(role="ANY"):
    def wrapper(fn):
        @wraps(fn)
        def decorated_view(*args, **kwargs):
            if not current_user.is_authenticated():
                return lm.unauthorized()
            if ((role not in current_user.roles) and (role != "ANY")):
                return lm.unauthorized()
            return fn(*args, **kwargs)
        return decorated_view
    return wrapper

好的,这是来自烧瓶登录的原始装饰器:

def login_required(func):
    @wraps(func)
    def decorated_view(*args, **kwargs):
        if current_app.login_manager._login_disabled:
            return func(*args, **kwargs)
        elif not current_user.is_authenticated():
            return current_app.login_manager.unauthorized()
        return func(*args, **kwargs)
    return decorated_view
4

2 回答 2

0

抱歉,重定向工作正常 - 这只是我 view.py 中的一个问题。

我希望你至少会发现我的角色适应有点帮助!

于 2015-03-05T18:56:23.980 回答
0

你的代码什么都没有说,这是一种耻辱,在所有情况下它只是运行lm.unauthorized(),但你为什么不使用重定向?希望它有点;)

于 2015-03-05T02:46:35.330 回答