Commit d8dbb1ccdcff6aef455533463a192c5ddadefb02
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 | """ |