Атрибут is_active
Атрибут is_active принадлежит классу UserMixin из модуля
flask_login. Он возвращает булево значение и показывает,
активна ли учётная запись пользователя. Если атрибут равен
True, пользователь может войти в систему. Если False,
Flask-Login откажет в аутентификации, даже если логин и пароль верны.
По умолчанию в UserMixin этот атрибут всегда возвращает
True.
Синтаксис
user.is_active
Пример
Давайте создадим класс пользователя на основе UserMixin
и проверим значение атрибута is_active:
from flask import Flask
from flask_login import UserMixin
app = Flask(__name__)
class User(UserMixin):
def __init__(self, id):
self.id = id
user = User(1)
res = user.is_active
print(res)
Результат выполнения кода:
True
Пример
Давайте переопределим атрибут is_active в собственном
классе, чтобы деактивировать пользователя:
from flask import Flask
from flask_login import UserMixin
app = Flask(__name__)
class User(UserMixin):
def __init__(self, id, active):
self.id = id
self._active = active
@property
def is_active(self):
return self._active
user = User(1, False)
res = user.is_active
print(res)
Результат выполнения кода:
False
Пример
Давайте используем атрибут is_active в функции
login_user, чтобы запретить вход неактивному пользователю:
from flask import Flask
from flask_login import UserMixin, LoginManager, login_user
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
class User(UserMixin):
def __init__(self, id, active):
self.id = id
self._active = active
@property
def is_active(self):
return self._active
@login_manager.user_loader
def load_user(user_id):
return User(user_id, False)
with app.test_request_context():
user = User(1, False)
res = login_user(user)
print(res)
Результат выполнения кода:
False
Смотрите также
-
класс
UserMixin,
который предоставляет стандартные атрибуты пользователя -
атрибут
is_authenticated,
который показывает, прошёл ли пользователь аутентификацию -
атрибут
is_anonymous,
который показывает, является ли пользователь анонимным -
функцию
login_user,
которая выполняет вход пользователя в систему