From ff0664a66e3d675a2b55aa18f171ef7bbc127af4 Mon Sep 17 00:00:00 2001 From: Nicola Hauke Date: Tue, 23 Feb 2016 18:24:55 +0100 Subject: [PATCH 1/7] Unignores translation files --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 85446ba..7d8d699 100644 --- a/.gitignore +++ b/.gitignore @@ -35,9 +35,6 @@ nosetests.xml coverage.xml coverage_html -# Translations -*.mo - # Mr Developer .mr.developer.cfg .project From 340f0651c931f089b77b713923f7b84b7932257e Mon Sep 17 00:00:00 2001 From: Nicola Hauke Date: Tue, 23 Feb 2016 18:27:29 +0100 Subject: [PATCH 2/7] Adds the german mo file --- rest_auth/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 2300 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rest_auth/locale/de/LC_MESSAGES/django.mo diff --git a/rest_auth/locale/de/LC_MESSAGES/django.mo b/rest_auth/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..07861ff6d19caf35d4f2e04407f02f6af7402bd5 GIT binary patch literal 2300 zcmai#&u<$=6vqc>`C)z+5Jd&?FfE}7sPkgn{E<{y7Ktr*?I5HoA=&4|9tGo z7Xr^S7|&z;i17kOau2@n{0g1{e*@k6@q2|h0lr!CUGQ1VN8nNL6L1dv4165?0Xzx* z1Wti}fp38)?wi=#0Da62=;XcvkAt_sQ{XS)Ggl{X)D5UMe{NoxM*%e8kuIa`NATkAZ)JuYmu6r@>PX2(bY6z?0zTpxgJG^8N3i zJNL^E3NZuDgRg@Fkiaj&dGLGC`S~{pH;V^b6!CttoI5;$0g>W)1m8GL;n&lXR|4A= z@q7q$_MXB(Xv8s$y{A_GaCvwX<6$>%QEu6gvLqA3GP+KNV`Vco9MO)-29yo3$lge* zgk%&Mw$>MI-cp(|mt%-t4HIcCDNWmoclH)TnIwG~4zK1W`OjLSSZ9ayg2^V>PNx}d zvr$`$BVPo@q(&_1Fg1q547SF3=93IV_;NK%hpZ_z6s8fogBboWS8(6or?M@RoJBXc zPCHC;NY>dMsZLTyR3F3tozz5i|B#T2j+P_7iyR|T2xGkxheQ9j!!qyC-i9=gmimkn zSh?+dUMW4P77%gH_Hx0b_i67FpGcK?s*EDazF5nPP;KQ&a-EVij*;6GAr$Karfesz zyg|T|$Wo*tJ(bZ&X5qjW8(Q`g2&PWgWwNM?u}Qa81WO@ejct@nP#7Donvj_^*9f(< zWSue&wu#bkZ(MGpqI{y6Vq;PnAqWx))EQqx=A}_iNu)!uV$u(gb8ji~HrZH}>L#tU zE?jP13}`c0U0doc*H(F)n#}9kSVi7Dd2GG)v`Mv<-nw@IHJw4pYs-wAG&kEgIT*M8vbnUf{TU5cGt)7+lA$|aUzwTr*I$*3SwbnebGBx$vL;S*mwc1Nu+e#q_cgM z)mD<+$i!Pr&B!)MkBg~Yn471`&xKbty|h4$)AKbEAhkvQM#xB{P zdSzt8L8{9(VH6wGQPB?Ylj;XLLjB;iF9h~?g*&eA>kQTU9o*0=9PD+8-H98EJV@Ax zMO0#l%EozO*=HYK?Q0cvLZ5)Au3glL%@(dbn*`SUJxxRJ6~{uqu(xkV0z!w@ zi*)j+(ACuR0j@6C2?Q zyVoPMC>QoNthsWnx{Yfra+oRn3%RPSyOx6*Ld{M#EZUA+o1vRG`fOs=C!7i8LdAW% LmfdbWy`lIQLlBxH literal 0 HcmV?d00001 From 086f8fae3fde64c8dfd5328c19f0ecd9ec14f1cc Mon Sep 17 00:00:00 2001 From: Girish Date: Tue, 1 Mar 2016 11:17:05 +0000 Subject: [PATCH 3/7] added SOCIAL_LOGIN_SERIALIZER in settings --- rest_auth/registration/app_settings.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rest_auth/registration/app_settings.py b/rest_auth/registration/app_settings.py index 227b45b..2b7e64e 100644 --- a/rest_auth/registration/app_settings.py +++ b/rest_auth/registration/app_settings.py @@ -1,7 +1,8 @@ from django.conf import settings from rest_auth.registration.serializers import ( - RegisterSerializer as DefaultRegisterSerializer) + RegisterSerializer as DefaultRegisterSerializer, + SocialLoginSerializer as DefaultSocialLoginSerializer) from ..utils import import_callable @@ -9,3 +10,6 @@ serializers = getattr(settings, 'REST_AUTH_REGISTER_SERIALIZERS', {}) RegisterSerializer = import_callable( serializers.get('REGISTER_SERIALIZER', DefaultRegisterSerializer)) + +SocialLoginSerializer = import_callable( + serializers.get('SOCIAL_LOGIN_SERIALIZER', DefaultSocialLoginSerializer)) From 5a3c84fed65fa22ec683c3dad52bcc4e48b2d767 Mon Sep 17 00:00:00 2001 From: Girish Date: Tue, 1 Mar 2016 11:19:48 +0000 Subject: [PATCH 4/7] added SocialLoginSerializer in Views --- rest_auth/registration/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rest_auth/registration/views.py b/rest_auth/registration/views.py index d1d8d37..e6c612e 100644 --- a/rest_auth/registration/views.py +++ b/rest_auth/registration/views.py @@ -19,7 +19,8 @@ from rest_auth.registration.serializers import (SocialLoginSerializer, VerifyEmailSerializer) from rest_auth.views import LoginView from rest_auth.models import TokenModel -from .app_settings import RegisterSerializer +from .app_settings import (RegisterSerializer, + SocialLoginSerializer) from rest_auth.utils import jwt_encode From 80adbae73a825e4a8749b5ec34272aa42f43faae Mon Sep 17 00:00:00 2001 From: Girish Date: Tue, 1 Mar 2016 11:23:12 +0000 Subject: [PATCH 5/7] Update views.py --- rest_auth/registration/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rest_auth/registration/views.py b/rest_auth/registration/views.py index e6c612e..a69ccb4 100644 --- a/rest_auth/registration/views.py +++ b/rest_auth/registration/views.py @@ -15,8 +15,7 @@ from allauth.account import app_settings as allauth_settings from rest_auth.app_settings import (TokenSerializer, JWTSerializer, create_token) -from rest_auth.registration.serializers import (SocialLoginSerializer, - VerifyEmailSerializer) +from rest_auth.registration.serializers import VerifyEmailSerializer from rest_auth.views import LoginView from rest_auth.models import TokenModel from .app_settings import (RegisterSerializer, From d18475eccee6af2af2ad14e1c6188eb480d3d61a Mon Sep 17 00:00:00 2001 From: Girish Date: Tue, 1 Mar 2016 11:25:07 +0000 Subject: [PATCH 6/7] added SOCIAL_LOGIN_SERIALIZER in docs --- docs/configuration.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/configuration.rst b/docs/configuration.rst index 0728e11..dd285f1 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -37,6 +37,7 @@ Configuration Possible key values: - REGISTER_SERIALIZER - serializer class in ``rest_auth.register.views.RegisterView``, default value ``rest_auth.register.serializers.RegisterSerializer`` + - SOCIAL_LOGIN_SERIALIZER - serializer class in ``rest_auth.register.views.SocialLoginView``, default value ``rest_auth.register.serializers.SocialLoginSerializer`` - **REST_AUTH_TOKEN_MODEL** - model class for tokens, default value ``rest_framework.authtoken.models`` From 25724759719bb08dd49cc0956757160e97c7b009 Mon Sep 17 00:00:00 2001 From: mjaworski Date: Tue, 1 Mar 2016 11:51:01 +0000 Subject: [PATCH 7/7] fixed code quality --- rest_auth/registration/views.py | 1 + rest_auth/serializers.py | 3 +++ rest_auth/tests/test_api.py | 9 +++------ rest_auth/tests/test_social.py | 3 +-- rest_auth/utils.py | 3 ++- rest_auth/views.py | 3 +-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rest_auth/registration/views.py b/rest_auth/registration/views.py index d1d8d37..41ca856 100644 --- a/rest_auth/registration/views.py +++ b/rest_auth/registration/views.py @@ -23,6 +23,7 @@ from .app_settings import RegisterSerializer from rest_auth.utils import jwt_encode + class RegisterView(CreateAPIView): serializer_class = RegisterSerializer permission_classes = (AllowAny, ) diff --git a/rest_auth/serializers.py b/rest_auth/serializers.py index 7daf17c..3d4faae 100644 --- a/rest_auth/serializers.py +++ b/rest_auth/serializers.py @@ -118,6 +118,7 @@ class TokenSerializer(serializers.ModelSerializer): model = TokenModel fields = ('key',) + class UserDetailsSerializer(serializers.ModelSerializer): """ @@ -128,6 +129,7 @@ class UserDetailsSerializer(serializers.ModelSerializer): fields = ('username', 'email', 'first_name', 'last_name') read_only_fields = ('email', ) + class JWTSerializer(serializers.Serializer): """ Serializer for JWT authentication. @@ -135,6 +137,7 @@ class JWTSerializer(serializers.Serializer): token = serializers.CharField() user = UserDetailsSerializer() + class PasswordResetSerializer(serializers.Serializer): """ diff --git a/rest_auth/tests/test_api.py b/rest_auth/tests/test_api.py index f75322c..a74e409 100644 --- a/rest_auth/tests/test_api.py +++ b/rest_auth/tests/test_api.py @@ -97,13 +97,12 @@ class APITestCase1(TestCase, BaseAPITestCase): "username": self.USERNAME, "password": self.PASS } - user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) + get_user_model().objects.create_user(self.USERNAME, '', self.PASS) self.post(self.login_url, data=payload, status_code=200) self.assertEqual('token' in self.response.json.keys(), True) self.token = self.response.json['token'] - def test_login_by_email(self): # starting test without allauth app settings.INSTALLED_APPS.remove('allauth') @@ -335,7 +334,6 @@ class APITestCase1(TestCase, BaseAPITestCase): user = get_user_model().objects.get(pk=user.pk) self.assertEqual(user.email, self.response.json['email']) - def test_registration(self): user_count = get_user_model().objects.all().count() @@ -365,7 +363,6 @@ class APITestCase1(TestCase, BaseAPITestCase): self._login() self._logout() - def test_registration_with_invalid_password(self): data = self.REGISTRATION_DATA.copy() data['password2'] = 'foobar' @@ -430,7 +427,7 @@ class APITestCase1(TestCase, BaseAPITestCase): } # create user - user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) + get_user_model().objects.create_user(self.USERNAME, '', self.PASS) self.post(self.login_url, data=payload, status_code=200) self.get(self.logout_url, status=status.HTTP_200_OK) @@ -443,7 +440,7 @@ class APITestCase1(TestCase, BaseAPITestCase): } # create user - user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) + get_user_model().objects.create_user(self.USERNAME, '', self.PASS) self.post(self.login_url, data=payload, status_code=status.HTTP_200_OK) self.get(self.logout_url, status_code=status.HTTP_405_METHOD_NOT_ALLOWED) diff --git a/rest_auth/tests/test_social.py b/rest_auth/tests/test_social.py index 34c912e..a06e365 100644 --- a/rest_auth/tests/test_social.py +++ b/rest_auth/tests/test_social.py @@ -148,6 +148,5 @@ class TestSocialAuth(TestCase, BaseAPITestCase): self.post(self.fb_login_url, data=payload, status_code=200) self.assertIn('token', self.response.json.keys()) self.assertIn('user', self.response.json.keys()) - - self.assertEqual(get_user_model().objects.all().count(), users_count + 1) + self.assertEqual(get_user_model().objects.all().count(), users_count + 1) diff --git a/rest_auth/utils.py b/rest_auth/utils.py index 5cb94d7..99d80b8 100644 --- a/rest_auth/utils.py +++ b/rest_auth/utils.py @@ -15,8 +15,9 @@ def default_create_token(token_model, user, serializer): token, _ = token_model.objects.get_or_create(user=user) return token + def jwt_encode(user): - try: + try: from rest_framework_jwt.settings import api_settings except ImportError: raise ImportError('rest_framework_jwt needs to be installed') diff --git a/rest_auth/views.py b/rest_auth/views.py index 25f47f2..5e168cd 100644 --- a/rest_auth/views.py +++ b/rest_auth/views.py @@ -46,7 +46,7 @@ class LoginView(GenericAPIView): def login(self): self.user = self.serializer.validated_data['user'] - + if getattr(settings, 'REST_USE_JWT', False): self.token = jwt_encode(self.user) else: @@ -55,7 +55,6 @@ class LoginView(GenericAPIView): if getattr(settings, 'REST_SESSION_LOGIN', True): login(self.request, self.user) - def get_response(self): serializer_class = self.get_response_serializer()