19 lines
814 B
Python
19 lines
814 B
Python
from . import db
|
|
from flask_login import UserMixin
|
|
from datetime import datetime
|
|
|
|
class User(UserMixin, db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
username = db.Column(db.String(80), unique=True, nullable=False)
|
|
password = db.Column(db.String(200), nullable=False)
|
|
|
|
class LoginIP(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
ip = db.Column(db.String(45), unique=True, nullable=False)
|
|
count = db.Column(db.Integer, default=0, nullable=False)
|
|
blocked_until = db.Column(db.DateTime, nullable=True)
|
|
last_attempt = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
|
failed_attempts = db.Column(db.Integer, default=0, nullable=False)
|
|
locked_until = db.Column(db.DateTime, nullable=True)
|
|
last_failed = db.Column(db.DateTime, nullable=True)
|