Advertisement
Guest User

Untitled

a guest
Jun 11th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. class User(db.Document):
  2. email = db.EmailField(required=True, unique=True)
  3. username = db.StringField(max_length=50, required=True, unique=True )
  4. password = db.StringField(required=True)
  5. first_name = db.StringField(max_length=100, required=False)
  6. last_name = db.StringField(max_length=100, required=False)
  7. role = db.IntField(required = True, choices = role_choices, default = 5)
  8. status = db.IntField(required = True, choices = status_choices, default = 1)
  9. last_login = db.DateTimeField(required=False)
  10.  
  11. @property
  12. def is_authenticated(self):
  13. return True
  14.  
  15. @property
  16. def is_active(self):
  17. return True
  18.  
  19. @property
  20. def is_anonymous(self):
  21. return False
  22.  
  23. def __unicode__(self):
  24. return self.username
  25.  
  26. def set_password(self, password):
  27. self.password = bcrypt.generate_password_hash(password)
  28.  
  29. def __init__(self, *args, **kwargs):
  30. username = kwargs.pop('username', None)
  31. password = kwargs.pop('password', None)
  32. email = kwargs.pop('email', None)
  33.  
  34. super(User, self).__init__(*args, **kwargs)
  35. self.username = username
  36. self.set_password(password)
  37. self.email = email
  38.  
  39. meta = {
  40. 'allow_inheritance': False,
  41. 'indexes': ['-username'],
  42. 'ordering': ['-username']
  43. }
  44.  
  45. def check_password(self, password):
  46. return bcrypt.check_password_hash(self.password, password)
  47.  
  48. an = User(username="annguyen", first_name="An", last_name="Nguyen", password="janet78", email="an@gmail.com")
  49. >>> an.password
  50. '$2b$12$Ho9Q0/n4FPERytHKxA3szu8gzRZE4J9FxuZots8FFxJUKP6ULmqpe'
  51. >>> an.save()
  52. <User: annguyen>
  53. >>> len(an.password)
  54. 60
  55. >>> an.check_password('janet78')
  56. True
  57.  
  58. >>> an_new = User.objects.get(username='annguyen')
  59. >>> an_new.password
  60. '$2b$12$j9VfNiySMKN19cYIEjuAseiamREUmGbB2ZFM4faoLJySB6uZfaCj2'
  61. >>> len(an.password)
  62. 60
  63. >>> len(an_new.password)
  64. 60
  65. >>> an_new.check_password('janet78')
  66. False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement