Advertisement
Guest User

Untitled

a guest
May 11th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. from __future__ import unicode_literals
  2. from django.db import models
  3. import datetime
  4. import re
  5. import bcrypt
  6.  
  7. password_regex = re.compile(r'^[a-zA-Z0-9.+_!@#$%^&*()={}[]|~`,<>?/;:"-]+$')
  8. EMAIL_REGEX = re.compile(r'^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$')
  9.  
  10. class User_manager(models.Manager):
  11. def register(self, postdata):
  12. error = []
  13. response_to_views = {}
  14. if postdata:
  15. if len(postdata['name']) < 3 and not re.search(r'^\w+$', postdata['name']):
  16. error.append('Please use three or more letters to write your name.')
  17. if re.search(r' ', postdata['email']):
  18. error.append('Don\'t use spaces or random character in your email.')
  19. if not EMAIL_REGEX.match(postdata['email']):
  20. error.append('Please use a correct email address.')
  21. if len(postdata['password']) < 8:
  22. error.append('Please use 8 or more characters to write your password.')
  23. elif not password_regex.match(postdata.get('password')):
  24. error.append('Please dont use foreign characters and keep your special characters to a minimum.')
  25. if postdata.get('password') != postdata.get('confirmpw'):
  26. error.append('Both passwords must match.')
  27. if User.objects.filter(email=postdata['email']):
  28. error.append('This email already exists, please choose another one.')
  29. if User.objects.filter(email=postdata['email']):
  30. error.append('This email already exists, please choose another one.')
  31. if error == []:
  32. password = bcrypt.hashpw(postdata['password'].encode(), bcrypt.gensalt())
  33. self.create(email=postdata['email'],password=password,name=postdata['name'],birthdate=postdata['birthdate'])
  34. error.append('Thank you for registering, please log-in with your new username and password!')
  35. response_to_views['errors'] = error
  36. return response_to_views
  37.  
  38. def signin(self, postdata):
  39. response_to_signin = {}
  40. idea = []
  41. user = User.objects.filter(email=postdata['email'])
  42. if postdata:
  43. if user:
  44. if bcrypt.hashpw(postdata['password'].encode(), user[0].password.encode()) == user[0].password.encode():
  45. for z in user:
  46. idea.append(z)
  47. response_to_signin['id'] = idea
  48. return response_to_signin
  49.  
  50. class User(models.Model):
  51. name = models.CharField(max_length=70)
  52. email = models.CharField(max_length=50)
  53. password = models.CharField(max_length=50)
  54. birthdate = models.CharField(max_length=50, default=datetime.date.today())
  55. created_at = models.DateTimeField(auto_now_add=True)
  56. updated_at = models.DateTimeField(auto_now=True)
  57.  
  58. objects = User_manager()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement