36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import dateutil.parser
|
|
from passlib.apps import custom_app_context as pwd_context
|
|
from werkzeug.security import generate_password_hash, check_password_hash
|
|
|
|
from flask_login import UserMixin
|
|
|
|
from dash import dash, db
|
|
|
|
|
|
class User(UserMixin, db.Model):
|
|
__tablename__ = 'users'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
password_hash = db.Column(db.String(128))
|
|
email = db.Column(db.String(128), index=True, unique=True)
|
|
username = db.Column(db.String(64), index=True, unique=True)
|
|
full_name = db.Column(db.String(128), index=True)
|
|
avatar = "/static/img/user2-160x160.jpg"
|
|
created_at = dateutil.parser.parse("November 12, 2012")
|
|
|
|
@property
|
|
def password(self):
|
|
raise AttributeError('password is not readable attribute')
|
|
|
|
@password.setter
|
|
def password(self, password):
|
|
self.password_hash = generate_password_hash(password)
|
|
|
|
def verify_password(self, password):
|
|
return check_password_hash(self.password_hash, password)
|
|
|
|
|
|
def __refr__(self):
|
|
return '<User %r>' % (self.nickname) |