mirror of
https://github.com/Tivix/django-rest-auth.git
synced 2025-07-25 15:09:47 +03:00
Send user_logged_in into LoginView on login method
Send user logged in because it's only send on django_login but if REST_SESSION_LOGIN is disable it is not going to be sent
This commit is contained in:
parent
479a40d2cc
commit
4b1b4f92de
|
@ -93,6 +93,7 @@ class TestsMixin(object):
|
|||
self.fb_connect_url = reverse('fb_connect')
|
||||
self.tw_connect_url = reverse('tw_connect')
|
||||
self.social_account_list_url = reverse('social_account_list')
|
||||
self.signal_sent = False
|
||||
|
||||
def _login(self):
|
||||
payload = {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from django.test import TestCase, override_settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth import get_user_model, user_logged_in
|
||||
from django.core import mail
|
||||
from django.conf import settings
|
||||
from django.utils.encoding import force_text
|
||||
|
@ -66,13 +66,15 @@ class APIBasicTests(TestsMixin, TestCase):
|
|||
result['token'] = default_token_generator.make_token(user)
|
||||
return result
|
||||
|
||||
def on_login(self, sender, **kwargs):
|
||||
self.signal_sent = True
|
||||
|
||||
@override_settings(ACCOUNT_AUTHENTICATION_METHOD=account_app_settings.AuthenticationMethod.EMAIL)
|
||||
def test_login_failed_email_validation(self):
|
||||
payload = {
|
||||
"email": '',
|
||||
"password": self.PASS
|
||||
}
|
||||
|
||||
resp = self.post(self.login_url, data=payload, status_code=400)
|
||||
self.assertEqual(resp.json['non_field_errors'][0], u'Must include "email" and "password".')
|
||||
|
||||
|
@ -105,11 +107,15 @@ class APIBasicTests(TestsMixin, TestCase):
|
|||
|
||||
self.post(self.password_change_url, status_code=403)
|
||||
|
||||
# connect to user logged in
|
||||
user_logged_in.connect(self.on_login)
|
||||
|
||||
# create user
|
||||
user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS)
|
||||
|
||||
self.post(self.login_url, data=payload, status_code=200)
|
||||
self.assertEqual('key' in self.response.json.keys(), True)
|
||||
self.assertTrue(self.signal_sent)
|
||||
self.token = self.response.json['key']
|
||||
|
||||
self.post(self.password_change_url, status_code=400)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.contrib.auth import (
|
||||
login as django_login,
|
||||
logout as django_logout
|
||||
)
|
||||
logout as django_logout,
|
||||
user_logged_in)
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
@ -69,6 +69,12 @@ class LoginView(GenericAPIView):
|
|||
|
||||
if getattr(settings, 'REST_SESSION_LOGIN', True):
|
||||
self.process_login()
|
||||
else:
|
||||
'''
|
||||
Send user logged in because it's only send on django_login but if REST_SESSION_LOGIN is disable it
|
||||
is not going to be sent
|
||||
'''
|
||||
user_logged_in.send(sender=self.user.__class__, request=self.request, user=self.user)
|
||||
|
||||
def get_response(self):
|
||||
serializer_class = self.get_response_serializer()
|
||||
|
|
Loading…
Reference in New Issue
Block a user