Commit d8dbb1ccdcff6aef455533463a192c5ddadefb02

Authored by Andrew Buss
1 parent 9bd8c31d05
Exists in master

fixed signup, login - was not passing in password to create_user

Showing 2 changed files with 22 additions and 19 deletions Side-by-side Diff

flashcards/api.py View file @ d8dbb1c
1   -from django.contrib.auth import login, authenticate
2 1 from django.core.mail import send_mail
3 2 from django.contrib.auth import authenticate, login
4 3 from django.contrib.auth.tokens import default_token_generator
... ... @@ -44,8 +43,8 @@
44 43 raise ValidationError('Password is required')
45 44  
46 45 email = request.data['email']
47   - user = User.objects.create_user(email, email=email)
48   - user.confirm_email(user.confirmation_key)
  46 + user = User.objects.create_user(email, email=email, password=request.data['password'])
  47 +
49 48 body = '''
50 49 Visit the following link to confirm your email address:
51 50 http://flashy.cards/app/verify_email/%s
52 51  
53 52  
54 53  
... ... @@ -57,22 +56,23 @@
57 56 body % user.confirmation_key,
58 57 "noreply@flashy.cards",
59 58 [user.email])
60   - user = authenticate(username=email, password=request.data['password'])
61   - print user
62   - login(request, user)
63 59  
  60 + user = authenticate(email=email, password=request.data['password'])
  61 + login(request, user)
64 62 return Response(UserSerializer(User).data)
65 63  
66 64 def delete(self, request, format=None):
67 65 request.user.delete()
68 66 return Response(status=status.HTTP_204_NO_CONTENT)
69 67  
  68 +
70 69 class UserLogin(APIView):
71   - """
72   - Authenticates user and returns user data if valid. Handles invalid
73   - users.
74   - """
75   - def post(self, request, format=None):
  70 + """
  71 + Authenticates user and returns user data if valid. Handles invalid
  72 + users.
  73 + """
  74 +
  75 + def post(self, request, format=None):
76 76 """
77 77 Returns user data if valid.
78 78 """
79 79  
80 80  
81 81  
... ... @@ -85,19 +85,19 @@
85 85 password = request.data['password']
86 86 user = authenticate(username=email, password=password)
87 87  
88   - if user is not None:
89   - if user.is_active:
90   - login(request, user)
91   - return Response(UserSerializer(User).data)
92   - else:
93   - raise ValidationError('Account is disabled')
94   - else:
  88 + if user is None:
95 89 raise ValidationError('Invalid email or password')
  90 + if not user.is_active:
  91 + raise ValidationError('Account is disabled')
  92 + login(request, user)
  93 + return Response(UserSerializer(User).data)
96 94  
  95 +
97 96 class PasswordReset(APIView):
98 97 """
99 98 Allows user to reset their password.
100 99 """
  100 +
101 101 def post(self, request, format=None):
102 102 """
103 103 Send a password reset token/link to the provided email.
104 104  
... ... @@ -122,10 +122,12 @@
122 122 If you did not request a password reset, no action is required.
123 123 '''
124 124  
125   - send_mail("Please verify your Flashy account",
  125 + send_mail("Flashy password reset",
126 126 body % (user.pk, token),
127 127 "noreply@flashy.cards",
128 128 [user.email])
  129 +
  130 + return Response(status=status.HTTP_204_NO_CONTENT)
129 131  
130 132 def patch(self, request, format=None):
131 133 """
flashy/settings.py View file @ d8dbb1c
... ... @@ -60,6 +60,7 @@
60 60 AUTHENTICATION_BACKENDS = (
61 61 'django.contrib.auth.backends.ModelBackend',
62 62 )
  63 +
63 64 TEMPLATES = [
64 65 {
65 66 'BACKEND': 'django.template.backends.django.DjangoTemplates',