Guest User

Untitled

a guest
Jan 6th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import (
  3. BaseUserManager,
  4. AbstractBaseUser
  5. )
  6.  
  7. # Create your models here.
  8.  
  9. class UserManager(BaseUserManager):
  10. def create_user(self, email, first_name, last_name, account_type=None, password=None):
  11. if not email:
  12. raise ValueError('Email address is required')
  13.  
  14. user = self.model(
  15. email = self.normalize_email(email),
  16. first_name = first_name,
  17. last_name = last_name,
  18. account_type = account_type
  19. )
  20.  
  21. user.set_password(password)
  22. user.save(using=self._db)
  23. return user
  24.  
  25. def create_staffuser(self, email, first_name, last_name, password):
  26. user = self.create_user(
  27. email,
  28. first_name = first_name,
  29. last_name = last_name,
  30. account_type = 'staff',
  31. password = password
  32. )
  33. user.staff = True
  34. user.save(using=self._db)
  35. return user
  36.  
  37. def create_superuser(self, email, first_name, last_name, password):
  38. user = self.create_user(
  39. email,
  40. first_name = first_name,
  41. last_name = last_name,
  42. account_type = 'admin',
  43. password = password
  44. )
  45. user.staff = True
  46. user.admin = True
  47. user.save(using=self._db)
  48. return user
  49.  
  50. class User(AbstractBaseUser):
  51. email = models.CharField(max_length=255, unique=True)
  52. first_name = models.CharField(max_length=64)
  53. last_name = models.CharField(max_length=64)
  54. account_type = models.CharField(max_length=32)
  55. active = models.BooleanField(default=True)
  56. staff = models.BooleanField(default=False)
  57. admin = models.BooleanField(default=False)
  58.  
  59. objects = UserManager()
  60.  
  61. USERNAME_FIELD = 'email'
  62. REQUIRED_FIELDS = ['first_name', 'last_name']
  63.  
  64. def __str__(self):
  65. return self.email
  66.  
  67. def get_full_name(self):
  68. return "%s %s" % (self.first_name, self.last_name)
  69.  
  70. def get_short_name(self):
  71. return self.first_name
  72.  
  73. def has_perm(self, perm, obj=None):
  74. return True
  75.  
  76. def has_module_perms(self, app_label):
  77. return True
  78.  
  79. @property
  80. def is_admin(self):
  81. return self.admin
  82.  
  83. @property
  84. def is_staff(self):
  85. return self.staff
  86.  
  87. @property
  88. def is_active(self):
  89. return self.active
  90.  
  91. from django.shortcuts import render
  92. from accounts.forms import RegisterForm
  93.  
  94. # Create your views here.
  95.  
  96. def register(request):
  97. if request.method == 'POST':
  98. form = RegisterForm(request.POST)
  99. if form.is_valid():
  100. password = form.cleaned_data.get('password')
  101. user = form.save(commit=False)
  102. user.account_type = 'company'
  103. user.set_password(password)
  104. user.save()
  105. return HttpResponse('account created')
  106. else:
  107. form = RegisterForm();
  108. context = {
  109. 'form' : form
  110. }
  111. return render(request, 'accounts/form.html', context)
Add Comment
Please, Sign In to add comment