def create(self, request, *args, **kwargs): crypto_obj = get_data(request) plain_text = crypto_obj.decrypt_text(request.data['data']).replace( '\'', '\"') data = json.loads(plain_text) data = data if isinstance(data, dict) else {} try: serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) data = serializer.validated_data password = data.pop('password') user = Account(**data) user.set_password(password) user.save() response = crypto_obj.encrypt_text("{}".format( {"response": "user created."})) return Response({'response': response}, status.HTTP_201_CREATED) except IntegrityError as e: response = crypto_obj.encrypt_text("{}".format( {"response": "This username exist."})) return Response({"response": response}, status.HTTP_400_BAD_REQUEST) except Exception as e: response = crypto_obj.encrypt_text("{}".format({'response': e})) return Response({'response': response}, status=status.HTTP_400_BAD_REQUEST)
def signup_page(request): if request.user.is_authenticated(): return HttpResponseRedirect(reverse('index_page')) if request.method == "POST": email = request.POST.get('email') password = request.POST.get('password') if Account.objects.filter(email=email).exists(): context = {"form_message": {"title": "<span class=\"icon-caution\"></span> SIGNUP ERROR", "message": "Email already exists.", "type": "danger", "animation": "animated shake" }} return render(request, 'signup.html', context) if not email or not password: context = {"form_message": {"title": "<span class=\"icon-caution\"></span> SIGNUP ERROR", "message": "All fields are required.", "type": "danger", "animation": "animated shake" }} return render(request, 'signup.html', context) try: validate_email(email) except ValidationError: context = {"form_message": {"title": "<span class=\"icon-caution\"></span> SIGNUP ERROR", "message": "Enter a valid email address.", "type": "danger", "animation": "animated shake" }} return render(request, 'signup.html', context) try: user = Account() user.email = email user.set_password(password) user.is_activated = False user.save() Notification.objects.create(account=user, description="Account created.") token = ActivationToken(email=email) token.save() send_activation_token(request, token) Notification.objects.create(account=user, description="Activation mail sent.") except Exception as e: context = {"form_message": {"title": "<span class=\"icon-caution\"></span> SIGNUP ERROR", "message": "Cannot create account. Contact support team.<br/> DEBUG" + str(e), "type": "danger"} } return render(request, 'signup.html', context) context = {"form_message": {"title": "<span class=\"icon-happy\"></span> SIGNUP SUCCESS", "message": " Activation mail sent.", "type": "success"}} return render(request, 'login.html', context) else: return render(request, 'signup.html')