Пример #1
0
 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)
Пример #2
0
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')