Guest User

Untitled

a guest
Aug 2nd, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. USERNAME_FIELD = 'email'
  2. REQUIRED_FIELDS = ['username']
  3.  
  4. User._meta.get_field('email')._unique = True
  5.  
  6. USERNAME_FIELD = 'email'
  7.  
  8. def registration(request):
  9. if request.method == 'POST':
  10. user = User()
  11. company = Company()
  12. form = RegistrationForm(request.POST)
  13. if form.is_valid():
  14. user.first_name = form.cleaned_data['first_name']
  15. user.last_name = form.cleaned_data['last_name']
  16. user.email = form.cleaned_data['email']
  17. user.username = form.cleaned_data['email']
  18. user.password = form.cleaned_data['password']
  19. user.role = 'boss'
  20. company.name = user.last_name + " " + user.first_name
  21. company.creator = user.first_name + " " + user.last_name
  22. company.save()
  23. user.company = company
  24. user.save()
  25. return redirect('/good_luck/')
  26. else:
  27. form = RegistrationForm()
  28.  
  29. return render(request, 'registration.html', {'form': form})
  30.  
  31. class RegistrationForm(Form):
  32. first_name = CharField(label='Имя', max_length=130, required=True)
  33. last_name = CharField(label='Фамилия', max_length=130, required=True)
  34. email = EmailField(label='Почта', max_length='130', required=True)
  35. password = CharField(label='Пароль', required=True)
  36.  
  37. class EmailAuthBackend(object):
  38.  
  39. @staticmethod
  40. def authenticate(email=None, password=None):
  41. try:
  42. user = User.objects.get(email=email)
  43. except User.DoesNotExist:
  44. return None
  45.  
  46. if not user.check_password(password):
  47. return None
  48.  
  49. return user
  50.  
  51. @staticmethod
  52. def get_user(user_id):
  53. try:
  54. return User.objects.get(pk=user_id)
  55. except User.DoesNotExist:
  56. return None
  57.  
  58. AUTHENTICATION_BACKENDS = [
  59. 'путь_к_модулю.EmailAuthBackend'
  60. ]
  61.  
  62. from django.contrib.auth import login, authenticate
  63. from django.http.response import HttpResponse
  64.  
  65. user = authenticate(email=email,password=password)
  66.  
  67. if user is None:
  68. # Пользователь с таким имейлом и паролем не найден.
  69.  
  70. # Если всё хорошо, логиним пользователя
  71. login(request, user)
  72. return HttpResponse(status=200)
Add Comment
Please, Sign In to add comment