def form_valid(self, form):
     cd = form.cleaned_data
     with transaction.atomic():
         if User.objects.filter(email=cd["email"]).exists():
             return JsonResponse(
                 {"errors": {
                     "email": "User already exists"
                 }}, status=400)
         account = Account.objects.create(card_number=cd["card_number"],
                                          cvc=cd["cvc"],
                                          expiry=cd["expiry"])
         new_user = User.objects.create_user(
             cd["email"],
             cd["email"],
             cd["password"],
             first_name=cd["first_name"],
             last_name=cd["last_name"],
             zip=cd["zip"],
             market=cd["home_airport"],
             account=account,
         )
         signup_success(new_user.pk)
         # TODO: handle promocode
         if account.card_number and account.expiry and account.cvc:
             add_to_stripe(new_user, cd["plan"], cd["promo_code"])
         return JsonResponse({"success": True})
Exemple #2
0
 def post(self, request):
     form = InviteWizardForm(request.data)
     if not form.is_valid():
         return Response({"errors": form.errors.as_json()}, status=400)
     cd = form.cleaned_data
     with transaction.atomic():
         invite: CompanionInvite = cd["code"]
         if User.objects.filter(email=invite.email).exists():
             return JsonResponse(
                 {"errors": {
                     "email": "User already exists"
                 }}, status=400)
         new_user = create_subscriber(
             account=invite.sender.account,
             email=invite.email,
             password=cd["password"],
             role=UserRole.COMPANION,
             first_name=cd["first_name"],
             last_name=cd["last_name"],
             market=cd["home_airport"],
             source=UserSource.COMPANION,
         )
         invite.status = CompanionInviteStatus.active
         invite.save()
         signup_success(new_user.pk)
         return Response({"success": True})
Exemple #3
0
def create_user(request):
    username = request.POST.get(
        "email",
        "*****@*****.**")  # TODO: who should we use that default email?
    email = username
    password = request.POST["password"]

    user = User.objects.create_user(username, email, password)
    user.save()
    signup_success(request, user)

    user = authenticate(request, username=username, password=password)
    auth.login(request, user)
    return redirect(reverse('accounts'))
 def form_valid(self, form):
     cd = form.cleaned_data
     with transaction.atomic():
         invite: CompanionInvite = cd["code"]
         if User.objects.filter(email=invite.email).exists():
             return JsonResponse(
                 {"errors": {
                     "email": "User already exists"
                 }}, status=400)
         new_user = User.objects.create_user(
             invite.email,
             invite.email,
             cd["password"],
             role=UserRole.COMPANION,
             first_name=cd["first_name"],
             last_name=cd["last_name"],
             market=cd["home_airport"],
             account=invite.sender.account,
         )
         invite.status = CompanionInviteStatus.active
         invite.save()
         signup_success(new_user.pk)
         return JsonResponse({"success": True})