Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User(db.Document):
- email = db.EmailField(required=True, unique=True)
- username = db.StringField(max_length=50, required=True, unique=True )
- password = db.StringField(required=True)
- first_name = db.StringField(max_length=100, required=False)
- last_name = db.StringField(max_length=100, required=False)
- role = db.IntField(required = True, choices = role_choices, default = 5)
- status = db.IntField(required = True, choices = status_choices, default = 1)
- last_login = db.DateTimeField(required=False)
- @property
- def is_authenticated(self):
- return True
- @property
- def is_active(self):
- return True
- @property
- def is_anonymous(self):
- return False
- def __unicode__(self):
- return self.username
- def set_password(self, password):
- self.password = bcrypt.generate_password_hash(password)
- def __init__(self, *args, **kwargs):
- username = kwargs.pop('username', None)
- password = kwargs.pop('password', None)
- email = kwargs.pop('email', None)
- super(User, self).__init__(*args, **kwargs)
- self.username = username
- self.set_password(password)
- self.email = email
- meta = {
- 'allow_inheritance': False,
- 'indexes': ['-username'],
- 'ordering': ['-username']
- }
- def check_password(self, password):
- return bcrypt.check_password_hash(self.password, password)
- an = User(username="annguyen", first_name="An", last_name="Nguyen", password="janet78", email="an@gmail.com")
- >>> an.password
- '$2b$12$Ho9Q0/n4FPERytHKxA3szu8gzRZE4J9FxuZots8FFxJUKP6ULmqpe'
- >>> an.save()
- <User: annguyen>
- >>> len(an.password)
- 60
- >>> an.check_password('janet78')
- True
- >>> an_new = User.objects.get(username='annguyen')
- >>> an_new.password
- '$2b$12$j9VfNiySMKN19cYIEjuAseiamREUmGbB2ZFM4faoLJySB6uZfaCj2'
- >>> len(an.password)
- 60
- >>> len(an_new.password)
- 60
- >>> an_new.check_password('janet78')
- False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement