2016-02-11 281 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