Guest User

Untitled

a guest
Nov 20th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. from Apps.grupo.models import Grupo
  2. from Apps.empresa_area.models import Empresa_area
  3. from Apps.archivos.models import Archivos
  4. from django.db import models
  5. from django.contrib.auth.models import (
  6. AbstractBaseUser,
  7. BaseUserManager,
  8. Group,
  9. )
  10.  
  11.  
  12. class UserManager(BaseUserManager):
  13. def create_user(self, email, password=None, is_staff=False, is_admin=False):
  14. if not email:
  15. raise ValueError("Usuuario tiene email")
  16. if not password:
  17. raise ValueError("usuario debe tener contraseña")
  18. user_obj = self.model(
  19. email =self.normalize_email(email)
  20. )
  21. user_obj.set_password(password)
  22. user_obj.staff = is_staff
  23. user_obj.admin = is_admin
  24. user_obj.active = is_active
  25. user_obj.save(using=self._db)
  26. return user_obj
  27.  
  28. def create_staffuser(self, email, password=None):
  29. user = self.create_user(
  30. email,
  31. password=password,
  32. is_staff=True
  33. )
  34. return user
  35.  
  36. def create_superuser(self, email, password=None):
  37. user = self.create_user(
  38. email,
  39. password=password,
  40. is_staff=True,
  41. is_admin=True,
  42. )
  43. return user
  44.  
  45. class User(AbstractBaseUser):
  46. email = models.EmailField(max_length=200, unique=True)
  47. active = models.BooleanField(default=True)
  48. staff = models.BooleanField(default=False)
  49. admin = models.BooleanField(default=False)
  50. celular = models.CharField(max_length=20)
  51. saludo = models.CharField(max_length=10)
  52. grupo = models.ForeignKey(Grupo, null=True, blank=True, on_delete=models.CASCADE)
  53. archivo = models.ForeignKey(Archivos, null=True, blank=True, on_delete=models.CASCADE)
  54. fec_creacion = models.DateTimeField(auto_now=False, auto_now_add=False)
  55. empresa_area_id = models.ForeignKey(Empresa_area, null=True, blank=True, on_delete=models.CASCADE)
  56. cargo = models.ManyToManyField(Group)
  57.  
  58. USERNAME_FIELD = 'email'
  59.  
  60. REQUIRED_FILES = []
  61.  
  62. objects = UserManager()
  63.  
  64. class Meta:
  65. verbose_name = ('user')
  66. verbose_name_plural = ('users')
  67.  
  68. def __str__(self):
  69. return self.email
  70.  
  71.  
  72. def get_full_name(self):
  73. return self.email
  74.  
  75.  
  76. def get_short_name(self):
  77. return self.email
  78.  
  79. def has_perm(self, perm, obj=None):
  80. return True
  81.  
  82. def has_module_perms(self, app_label):
  83. return True
  84.  
  85. @property
  86. def is_staff(self):
  87. return self.staff
  88.  
  89. @property
  90. def is_admin(self):
  91. return self.admin
  92.  
  93. @property
  94. def is_active(self):
  95. return self.active
  96.  
  97. from django.contrib.auth import (
  98. get_user_model,
  99. authenticate,
  100. login,
  101. logout,
  102. )
  103. from django.views.generic import CreateView, FormView
  104. from django.utils.http import is_safe_url
  105. from django.shortcuts import render, redirect
  106. from .forms import Login
  107.  
  108. User = get_user_model()
  109.  
  110.  
  111. class LoginView(FormView):
  112. form_class = Login
  113. succes_url = '/'
  114. template_name = 'Login.html'
  115.  
  116. def form_valid(self, form):
  117. request = self.request
  118. next_post = request.POST.get('next')
  119. next_ = request.GET.get('next')
  120. password = form.cleaned_data.get("password")
  121. email = form.cleaned_data.get("email")
  122. user = authenticate(request, username=email, password=password)
  123. if user is not None:
  124. login(request, user)
  125. try:
  126. del request.session['email']
  127. except:
  128. pass
  129. return super(LoginView, self).form_invalid()
Add Comment
Please, Sign In to add comment