Guest User

Untitled

a guest
Jan 30th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
  3.  
  4.  
  5. # Create your models here.
  6.  
  7. class UserManager(BaseUserManager):
  8. def create_user(self, email, password=None, is_active=True, is_staff=False, is_admin=False):
  9. if not email:
  10. raise ValueError("Users must have an email address")
  11. if not password:
  12. raise ValueError('Users must have a password')
  13.  
  14. user_obj = self.model(
  15. email=self.normalize_email(email)
  16. )
  17. user_obj.set_password(password) # change user password
  18. user_obj.staff = is_staff
  19. user_obj.admin = is_admin
  20. user_obj.active = is_active
  21. user_obj.save(using=self._db)
  22. return user_obj
  23.  
  24. def create_staffuser(self, email, password=None):
  25. user = self.create_user(
  26. email,
  27. password=password,
  28. is_staff=True,
  29. )
  30. return user
  31.  
  32. def create_superuser(self, email, password=None):
  33. user = self.create_user(
  34. email,
  35. password=password,
  36. is_staff=True,
  37. is_admin=True
  38. )
  39. return user
  40.  
  41. class CustomUser(AbstractBaseUser):
  42. email = models.EmailField(max_length=255, unique=True)
  43. # full_name = models.CharField(max_length=255, blank=True, null=True)
  44. is_active = models.BooleanField(default=True) #can login
  45. is_staff = models.BooleanField(default=False) # staff user non superuser
  46. is_admin = models.BooleanField(default=False) # superuser
  47. timestamp = models.DateTimeField(auto_now_add=True)
  48.  
  49. # confirm = models.BooleanField(default=False)
  50. # confirmed_date = models.DateTimeField(default=False)
  51.  
  52. USERNAME_FIELD = 'email'
  53.  
  54. #USERNAME_FIELD and password are required by default
  55. REQUIRED_FIELDS = [] #['full_name'] #python manage.py createsuperuser
  56.  
  57. objects = UserManager()
  58.  
  59. def __str__(self):
  60. return self.email
  61.  
  62. def get_full_name(self):
  63. return self.email
  64.  
  65. def get_short_name(self):
  66. return self.email
  67.  
  68. @property
  69. def is_staff(self):
  70. return self.is_staff
  71.  
  72. @property
  73. def is_admin(self):
  74. return self.is_admin
  75.  
  76. @property
  77. def is_active(self):
  78. return self.is_active
  79.  
  80. class Profile(models.Model):
  81. user = models.OneToOneField(CustomUser)
  82. #location
  83. #bio
  84. #experience
  85. #profile pic
  86.  
  87.  
  88.  
  89.  
  90. class GuestEmail(models.Model):
  91. email = models.EmailField()
  92. active = models.BooleanField(default=True)
  93. update = models.DateTimeField(auto_now=True)
  94. timestamp = models.DateTimeField(auto_now_add=True)
  95.  
  96. def __str__(self):
  97. return self.email
  98.  
  99. AUTH_USER_MODEL = 'accounts.CustomUser' # changes the built-in user model to ours
Add Comment
Please, Sign In to add comment