users.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. from datetime import date
  2. import sqlalchemy
  3. from flask_login import UserMixin
  4. from werkzeug.security import check_password_hash, generate_password_hash
  5. from .db_session import SqlAlchemyBase
  6. class User(SqlAlchemyBase, UserMixin):
  7. __tablename__ = 'users'
  8. id = sqlalchemy.Column(sqlalchemy.Integer,
  9. primary_key=True, autoincrement=True)
  10. name = sqlalchemy.Column(sqlalchemy.String, nullable=False)
  11. surname = sqlalchemy.Column(sqlalchemy.String, nullable=True)
  12. login = sqlalchemy.Column(sqlalchemy.String, nullable=False, unique=True)
  13. email = sqlalchemy.Column(sqlalchemy.String,
  14. index=True, nullable=False)
  15. about = sqlalchemy.Column(sqlalchemy.String, nullable=True)
  16. photo = sqlalchemy.Column(sqlalchemy.Text)
  17. password = sqlalchemy.Column(sqlalchemy.String, nullable=True)
  18. data_reg = sqlalchemy.Column(sqlalchemy.Date,
  19. default=date.today())
  20. role = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("roles.id"), nullable=True)
  21. activity = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True)
  22. birthday = sqlalchemy.Column(sqlalchemy.Date, nullable=True)
  23. activated = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
  24. def check_password(self, password):
  25. return check_password_hash(self.password, password)
  26. def set_password(self, password):
  27. self.password = generate_password_hash(password)