Incepted/data/users.py

35 lines
1.5 KiB
Python

from datetime import date
import sqlalchemy
from flask_login import UserMixin
from werkzeug.security import check_password_hash, generate_password_hash
from .db_session import SqlAlchemyBase
class User(SqlAlchemyBase, UserMixin):
__tablename__ = 'users'
id = sqlalchemy.Column(sqlalchemy.Integer,
primary_key=True, autoincrement=True)
name = sqlalchemy.Column(sqlalchemy.String, nullable=False)
surname = sqlalchemy.Column(sqlalchemy.String, nullable=True)
login = sqlalchemy.Column(sqlalchemy.String, nullable=False, unique=True)
email = sqlalchemy.Column(sqlalchemy.String,
index=True, nullable=False)
about = sqlalchemy.Column(sqlalchemy.String, nullable=True)
photo = sqlalchemy.Column(sqlalchemy.Text)
password = sqlalchemy.Column(sqlalchemy.String, nullable=True)
data_reg = sqlalchemy.Column(sqlalchemy.Date,
default=date.today())
role = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("roles.id"), nullable=True)
activity = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True)
birthday = sqlalchemy.Column(sqlalchemy.Date, nullable=True)
activated = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
def check_password(self, password):
return check_password_hash(self.password, password)
def set_password(self, password):
self.password = generate_password_hash(password)