Advertisement
Guest User

Untitled

a guest
Jul 4th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3.  
  4. from django.db import models
  5.  
  6. from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  7. from django.contrib.auth.models import PermissionsMixin
  8.  
  9.  
  10. class UserManager(BaseUserManager):
  11. use_in_migrations = True
  12.  
  13. def _create_user(self, **extra_fields):
  14. """
  15. Creates and saves a User with the given username, email and password.
  16. """
  17.  
  18. print ">>>>>>>>>>>>> fields %r " % extra_fields
  19.  
  20. document = extra_fields.get("document")
  21. name = extra_fields.get("name")
  22. profile = extra_fields.get("profile")
  23. email = extra_fields.get("email")
  24. email = self.normalize_email(email)
  25. password = extra_fields.get("password")
  26. is_superuser = extra_fields.get("is_superuser")
  27.  
  28. if profile not in (User.ROOT, User.ENTERPRISE, User.CHANGER):
  29. raise ValueError("Profile is invalid.")
  30.  
  31. user = self.model(document=document, email=email, name=name, profile=profile, is_superuser=is_superuser)
  32. user.set_password(password)
  33. user.save(using=self._db)
  34. return user
  35.  
  36. def create_user(self, **extra_fields):
  37. extra_fields.setdefault('is_staff', False)
  38. extra_fields.setdefault('is_superuser', False)
  39. return self._create_user(**extra_fields)
  40.  
  41. def create_superuser(self, **extra_fields):
  42.  
  43. extra_fields.setdefault('is_staff', True)
  44. extra_fields.setdefault('is_superuser', True)
  45. extra_fields.setdefault('profile', User.ROOT)
  46.  
  47. if extra_fields.get('is_superuser') is not True:
  48. raise ValueError('Superuser must have is_superuser=True.')
  49.  
  50. return self._create_user(**extra_fields)
  51.  
  52.  
  53. class User(AbstractBaseUser, PermissionsMixin):
  54.  
  55. # kero mudar administration
  56. ROOT = 10
  57. # user of enterprise
  58. ENTERPRISE = 1
  59. # user type for changer
  60. CHANGER = 0
  61.  
  62. PROFILE_CHOICES = (
  63. (ROOT, "Root"),
  64. (ENTERPRISE, "Empresa"),
  65. (CHANGER, "Mudando"),
  66. )
  67.  
  68. document = models.CharField("CPF/CNPJ", max_length=14, null=False, unique=True, blank=False)
  69. name = models.CharField("Nome", max_length=150, null=False, blank=False)
  70. profile = models.IntegerField("Perfil", choices=PROFILE_CHOICES, null=False, blank=False)
  71. email = models.EmailField("Email", unique=True, blank=False)
  72.  
  73. USERNAME_FIELD = "email"
  74.  
  75. objects = UserManager()
  76.  
  77. class Meta:
  78. db_table = "users"
  79.  
  80. def get_full_name(self):
  81. return self.name
  82.  
  83. @property
  84. def is_staff(self):
  85. return self.is_superuser
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement