2016-02-11 282 views
1

我想更改默认的Flask-Login @login_required,以便它将检查数据库是否禁止用户。修改Flask-Login @Login_Required修饰器

我知道我可以创建一个自定义的装饰器来检查我的数据库并将其添加到我的所有视图中,但是由于我拥有的视图的数量,这将不太有用。这将不方便。

这可能吗?谢谢。

+1

也许'is_authenticated'返回属性'is_banned'而不是'True' ?.使用'@ property' decorater来执行逻辑 – Busturdust

+1

您的[用户类](https://flask-login.readthedocs.org/en/latest/#your-user-class)具有'is_authenticated'和'is_active'属性。如果用户被禁止,请使用“返回False”。 – Celeo

回答

0

您可以使用下一个方法:

from flask.ext.login import LoginManager 

@login_manager.user_loader 
def load_user_if_not_banned(user_id):   
    user = ... # Load user from DB 
    return user if not user.is_banned else None