diff --git a/apps/auth/views.py b/apps/auth/views.py index d1fcc322..7e30114e 100644 --- a/apps/auth/views.py +++ b/apps/auth/views.py @@ -30,7 +30,19 @@ class LearnerRegistrationView(FormView): email = form.cleaned_data['email'] password = form.cleaned_data['password'] - user = User.objects.create_user(username=email, email=email, first_name=first_name, last_name=last_name, password=password) + user, created = User.objects.get_or_create( + username=email, email=email, + first_name=first_name, last_name=last_name + ) + + if not created: + return JsonResponse({ + "success": False, + 'errors': {'__all__': [{'message': 'Возможно вы уже зарегистрированы?'}]} + }, status=400) + + user.set_password(password) + user.save() login(self.request, user) # fixme: change email text @@ -64,7 +76,8 @@ class LoginView(FormView): class VerificationEmailView(View): def get(self, request, *args, **kwargs): - is_valid_token = verification_email_token.check_token(request.user, kwargs.get('token')) + is_valid_token = verification_email_token.check_token( + request.user, kwargs.get('token')) if is_valid_token: lilcity_user_settings = request.user.lilcity_user_settings @@ -122,7 +135,8 @@ class FacebookLoginOrRegistration(View): facebook_id = data.get('id') - lilcity_user_settings = LilcityUserSettings.objects.filter(facebook_id=facebook_id) + lilcity_user_settings = LilcityUserSettings.objects.filter( + facebook_id=facebook_id) if lilcity_user_settings.count(): login(requests, user=lilcity_user_settings[0].user) return JsonResponse({"success": True}) @@ -136,7 +150,8 @@ class FacebookLoginOrRegistration(View): first_name = data.get('first_name', '') last_name = data.get('last_name', '') - user = LilcityUserProxy.objects.create_user(username=email, email=email, first_name=first_name, last_name=last_name, password=uuid4().hex) + user = LilcityUserProxy.objects.create_user( + username=email, email=email, first_name=first_name, last_name=last_name, password=uuid4().hex) user.lilcity_user_settings.is_verification_email = True user.lilcity_user_settings.facebook_id = facebook_id