models.py 800 B

123456789101112131415161718192021222324252627282930
  1. from app import db, bcrypt
  2. from sqlalchemy.ext.hybrid import hybrid_property
  3. from flask.ext.login import UserMixin
  4. class User(db.Model, UserMixin):
  5. ''' A website user. '''
  6. __tablename__ = 'users'
  7. name = db.Column(db.String)
  8. surname = db.Column(db.String)
  9. phone = db.Column(db.String)
  10. email = db.Column(db.String, primary_key=True)
  11. confirmation = db.Column(db.Boolean)
  12. _password = db.Column(db.String)
  13. @hybrid_property
  14. def password(self):
  15. return self._password
  16. @password.setter
  17. def _set_password(self, plaintext):
  18. self._password = bcrypt.generate_password_hash(plaintext)
  19. def check_password(self, plaintext):
  20. return bcrypt.check_password_hash(self.password, plaintext)
  21. def get_id(self):
  22. return self.email