Advertisement
Guest User

Untitled

a guest
Apr 18th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import print_function, unicode_literals
  3.  
  4. from django.db import models
  5. from django.conf import settings
  6. from django.utils import timezone
  7. from django.core.mail import send_mail
  8. from django.utils.translation import ugettext_lazy as _
  9. from django.utils.encoding import python_2_unicode_compatible
  10. from django.contrib.auth.models import BaseUserManager, PermissionsMixin, AbstractBaseUser
  11.  
  12.  
  13. class UserManager(BaseUserManager):
  14. use_in_migrations = True
  15.  
  16. def _create_user(self, email, password, **extra_fields):
  17. """
  18. Creates and saves a User with the given username, email and password.
  19. """
  20. if not email:
  21. raise ValueError('The given email must be set')
  22. email = self.normalize_email(email)
  23. user = self.model(email=email, **extra_fields)
  24. user.set_password(password)
  25. user.save(using=self._db)
  26. return user
  27.  
  28. def create_user(self, email, password=None, **extra_fields):
  29. extra_fields.setdefault('is_staff', False)
  30. extra_fields.setdefault('is_superuser', False)
  31. return self._create_user(email, password, **extra_fields)
  32.  
  33. def create_superuser(self, email, password, **extra_fields):
  34. extra_fields.setdefault('is_staff', True)
  35. extra_fields.setdefault('is_superuser', True)
  36.  
  37. if extra_fields.get('is_staff') is not True:
  38. raise ValueError('Superuser must have is_staff=True.')
  39. if extra_fields.get('is_superuser') is not True:
  40. raise ValueError('Superuser must have is_superuser=True.')
  41.  
  42. return self._create_user(email, password, **extra_fields)
  43.  
  44.  
  45. class User(AbstractBaseUser, PermissionsMixin):
  46.  
  47. email = models.EmailField(
  48. verbose_name=_('Email Address'),
  49. max_length=255,
  50. unique=True,
  51. )
  52.  
  53. first_name = models.CharField(
  54. verbose_name=_('first name'),
  55. max_length=50,
  56. blank=True
  57. )
  58.  
  59. last_name = models.CharField(
  60. verbose_name=_('last name'),
  61. max_length=50,
  62. blank=True
  63. )
  64.  
  65. is_staff = models.BooleanField(
  66. verbose_name=_('staff status'),
  67. default=False,
  68. help_text=_('Designates whether the user can log into this admin site.'),
  69. )
  70.  
  71. is_active = models.BooleanField(
  72. verbose_name=_('active'),
  73. default=True,
  74. help_text=_(
  75. 'Designates whether this user should be treated as active. '
  76. 'Unselect this instead of deleting accounts.'
  77. ),
  78. )
  79.  
  80. date_joined = models.DateTimeField(
  81. verbose_name=_('date joined'),
  82. auto_now_add=True
  83. )
  84.  
  85. objects = UserManager()
  86.  
  87. USERNAME_FIELD = 'email'
  88.  
  89. class Meta:
  90. verbose_name = _('user')
  91. verbose_name_plural = _('users')
  92.  
  93. def group_name(self):
  94. return ','.join([group.name for group in self.groups.all()])
  95.  
  96. def is_callblade_admin(self):
  97. if self.groups.filter(name=settings.CALLBLADE_GROUP_ADMIN).exists():
  98. return True
  99. return False
  100.  
  101. def is_admin(self):
  102. return self.is_superuser or self.is_callblade_admin()
  103. is_admin.boolean = True
  104.  
  105. def is_buyer(self):
  106. if self.groups.filter(name=settings.BUYER_GROUP).exists() and self.buyer_set.exists():
  107. return True
  108. return False
  109. is_buyer.boolean = True
  110.  
  111. def is_vendor(self):
  112. if self.groups.filter(name=settings.VENDOR_GROUP).exists() and self.vendor_set.exists():
  113. return True
  114. return False
  115. is_vendor.boolean = True
  116.  
  117. def get_full_name(self):
  118. """
  119. Returns the first_name plus the last_name, with a space in between.
  120. """
  121. full_name = '%s %s' % (self.first_name, self.last_name)
  122. return full_name.strip()
  123.  
  124. def get_short_name(self):
  125. "Returns the short name for the user."
  126. return self.first_name
  127.  
  128. def email_user(self, subject, message, from_email=None, **kwargs):
  129. """
  130. Sends an email to this User.
  131. """
  132. send_mail(subject, message, from_email, [self.email], **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement