Ejemplo n.º 1
0
def app_forgot_password(request):
    content = {}
    if request.method == 'POST':
        email = request.POST.get("email", "")

        try:
            user = User.objects.get(email=email)
            token = get_token(user.username)
            email_data = {"token": token, "user": user.username}
            body = render_to_string('mail/reset.html', email_data)
            services.send_email_mailgun('Reset Password Avicrypto',
                                        body,
                                        email,
                                        from_email="postmaster")
            content = {
                "status": "ok",
                "message": "Email has send to your address."
            }

            user.profile.token = token
            user.profile.save()

            return HttpResponse(json.dumps(content))
        except User.DoesNotExist:
            content = {
                "status": "error",
                "message": "Can't find that email, sorry."
            }
            return HttpResponse(json.dumps(content))

    return render(request, 'forgot-password.html', content)
Ejemplo n.º 2
0
def send_otp_sms_mail(otp=None, mobile=None, email=None):
    # if mobile and otp:
    #     services.send_sms('+%s'%mobile, otp)
    if email and otp:
        body = "Your avicrypto verification code is: %s" % otp
        services.send_email_mailgun('Avicrypto Verification',
                                    body,
                                    email,
                                    from_email="postmaster")
Ejemplo n.º 3
0
 def send_notificaion_mail(self, request, queryset):
     for data in queryset:
         email_data = {
             "user": data.user.first_name,
         }
         body = render_to_string('mail/alert.html', email_data)
         try:
             email = data.user.email
         except:
             email = '*****@*****.**'
         services.send_email_mailgun(
             'Important Notice - Payout release downtime ',
             body,
             email,
             from_email="postmaster")
Ejemplo n.º 4
0
def withdraw(request):
    if request.method == "POST":
        user = request.user
        currency_type = request.POST.get('currency', "")
        if currency_type:
            user_account = UserAccount.objects.filter(user=user)
            owner = User.objects.get(id=1)
            if user_account:
                user_account = user_account[0]
                if currency_type == "BTC":
                    if not user_account.btc_address or user_account.btc_address == "None":
                        return HttpResponse(
                            json.dumps({
                                "status":
                                "error",
                                "message":
                                "Add selected crypto currency account first."
                            }))
                    else:
                        crypto_addr = user_account.btc_address
                elif currency_type == "XRP":
                    if not user_account.xrp_address or user_account.xrp_address == "None":
                        return HttpResponse(
                            json.dumps({
                                "status":
                                "error",
                                "message":
                                "Add selected crypto currency account first."
                            }))
                    else:
                        crypto_addr = user_account.xrp_address
                elif currency_type == "ETH":
                    if not user_account.eth_address or user_account.eth_address == "None":
                        return HttpResponse(
                            json.dumps({
                                "status":
                                "error",
                                "message":
                                "Add selected crypto currency account first."
                            }))
                    else:
                        crypto_addr = user_account.eth_address

                if not Wallet.objects.filter(
                        owner=owner, wallet_type=currency_type).exists():
                    owner_wallet = Wallet.objects.create(
                        owner=owner, wallet_type=currency_type)
                else:
                    owner_wallet = Wallet.objects.get(
                        owner=owner, wallet_type=currency_type)

                if not Wallet.objects.filter(
                        owner=user, wallet_type=currency_type).exists():
                    user_wallet = Wallet.objects.create(
                        owner=user, wallet_type=currency_type)
                else:
                    user_wallet = Wallet.objects.get(owner=user,
                                                     wallet_type=currency_type)

                if User_packages.objects.filter(status='A',
                                                user=user).exists():

                    user_packages = User_packages.objects.get(user=user,
                                                              status='A')

                    if user_packages.total_payout > 0:

                        if not Transactions.objects.filter(
                                sender_wallet=owner_wallet,
                                reciever_wallet=user_wallet,
                                status="P",
                                tx_type="W").exists():

                            total_payout = user_packages.total_payout
                            owner_amount = total_payout / 10
                            user_amount = total_payout - owner_amount

                            transaction = Transactions.objects.create(
                                sender_wallet=owner_wallet,
                                reciever_wallet=user_wallet,
                                amount=user_amount,
                                status="P",
                                description="Withdraw Transaction",
                                tx_type="W")

                            owner_wallet.amount = owner_wallet.amount + owner_amount
                            owner_wallet.save()

                            user_wallet.amount = user_wallet.amount + user_amount
                            user_wallet.save()

                            user_packages.total_payout = 0
                            user_packages.binary = user_packages.direct = user_packages.weekly = 0

                            user_packages.save()

                            services.send_email_mailgun(
                                'AVI Crypto Transaction Success',
                                "Your withdrawal is successful, your transaction is pending. Your transaction is settled within 48 hours in your chosen account.",
                                user.email,
                                from_email="postmaster")

                            email_data = {
                                "user":
                                user,
                                "owner_amount":
                                owner_amount,
                                "user_amount":
                                user_amount,
                                "total_payout":
                                total_payout,
                                "currency_type":
                                currency_type,
                                "transaction":
                                transaction,
                                "today":
                                UTC.normalize(
                                    UTC.localize(datetime.datetime.utcnow()))
                            }
                            body = render_to_string(
                                'mail/transaction-admin.html', email_data)
                            services.send_email_mailgun(
                                'AVI Crypto Transaction Success',
                                body,
                                "*****@*****.**",
                                from_email="postmaster")
                            run_realtime_invest(user)

                            return HttpResponse(
                                json.dumps({
                                    "status":
                                    "ok",
                                    "message":
                                    "Your withdrawal is successful, your transaction is pending. Your transaction is settled within 48 hours in your chosen account."
                                }))
                        else:
                            return HttpResponse(
                                json.dumps({
                                    "status":
                                    "error",
                                    "message":
                                    "You already has a transaction in pending state."
                                }))
                    else:
                        return HttpResponse(
                            json.dumps({
                                "status": "error",
                                "message": "Amount is zero."
                            }))
                else:
                    return HttpResponse(
                        json.dumps({
                            "status":
                            "error",
                            "message":
                            "You dont have any package active packge to withdraw."
                        }))
            else:
                return HttpResponse(
                    json.dumps({
                        "status": "error",
                        "message": "Add crypto account address."
                    }))
        else:
            return HttpResponse(
                json.dumps({
                    "status": "error",
                    "message": "Select currency for withdraw."
                }))
Ejemplo n.º 5
0
def add_user(request):
    if request.method == 'GET':
        user = request.user
        sponser_id = user.profile.user_auto_id
        pos = request.GET.get('pos', "left")
        placement_id = request.GET.get('parent_placement_id')

        context = {
            'sponser_id': sponser_id,
            'placement_id': placement_id,
            'pos': pos
        }

        template = loader.get_template('add-user.html')

        if not request.user.is_authenticated():
            return HttpResponseRedirect('/error')
        else:
            return HttpResponse(template.render(context, request))

    if request.method == 'POST':
        data = request.POST
        email = data['email']
        content = {}

        if not User.objects.filter(email=email).exists():
            placement_id = Profile.objects.get(
                user_auto_id=data['placement_id'])

            user = User.objects.create(email=email, username=email)
            user.first_name = data['first_name']
            user.last_name = data['last_name']
            user.username = user.profile.user_auto_id
            user.is_active = True
            user.set_password('avi123456')
            user.save()

            profile = Profile.objects.get(user=user)
            sponser_id = Profile.objects.get(user=request.user)

            # check user active or not
            profile.sponser_id = sponser_id.user
            profile.referal_code = sponser_id.my_referal_code
            profile.placement_id = placement_id.user
            profile.mobile = data['mobile']
            profile.country = data['country']
            token = get_token(user.username)
            profile.token = token
            profile.email_verified = False
            profile.mobile_verified = False

            if data['placement'] == 'left':
                profile.placement_position = 'L'
            else:
                profile.placement_position = 'R'

            profile.save()

            email_data = {
                "user": user,
                "sponcer": sponser_id.user,
                "placement": placement_id.user,
                "placement_pos": data['placement'],
                "token": token
            }
            body = render_to_string('mail/network_user_welcome.html',
                                    email_data)
            services.send_email_mailgun('Welcome to Avicrypto',
                                        body,
                                        email,
                                        from_email="postmaster")

            Members.objects.create(parent_id=placement_id.user, child_id=user)

            # calculate_investment_binary_direct(request.user)

            content = {
                "status": "ok",
                "message": "Registration complete.",
            }
        else:
            content = {
                "status": "ok",
                "message": "Email address already registered.",
            }

        return HttpResponse(json.dumps(content))
Ejemplo n.º 6
0
def app_signup(request):
    if request.method == "POST":
        data = request.POST
        email = request.POST.get('email')
        referal_code = data.get('referal', None)
        sponcer_id = data.get('sponcer_id', None)
        placement_id = data.get('placement_id', None)
        placement_position = data.get('placement_position', "L")

        if email and validate_email(email) == None:
            first_name = request.POST.get('first_name')
            last_name = request.POST.get('last_name')
            mobile = request.POST.get('mobile')
            password = request.POST.get('password')

            if re.match(r'^\+?1?\d{9,15}$', mobile):
                if not User.objects.filter(email=email).exists():

                    if referal_code:
                        try:
                            referal_user = Profile.objects.get(
                                my_referal_code=referal_code)
                            if placement_id:
                                placement_user_profile = Profile.objects.get(
                                    user_auto_id=placement_id)
                                placement_user = placement_user_profile.user
                                position = 'l' if 'L' == placement_position else 'r'

                                if is_member_of(referal_user, placement_user):
                                    if has_child(placement_user, position):
                                        return HttpResponse(
                                            json.dumps({
                                                "status":
                                                "error",
                                                "message":
                                                "Placement user selected position is not empty."
                                            }))
                                else:
                                    return HttpResponse(
                                        json.dumps({
                                            "status":
                                            "error",
                                            "message":
                                            "Placement id user does not belong to the referal user."
                                        }))

                        except Profile.DoesNotExist:
                            content = {
                                "status": "error",
                                "message": "Referal code does not exist."
                            }
                            return HttpResponse(json.dumps(content))

                    user = User.objects.create(username=email,
                                               email=email,
                                               first_name=first_name,
                                               last_name=last_name,
                                               is_active=True)
                    user.username = user.profile.user_auto_id
                    user.set_password(str(password))
                    user.save()

                    token = update_signup_user_profile(user, request.POST)

                    email_data = {
                        "user": user,
                        "username": user.username,
                        "password": password,
                        "token": token
                    }
                    body = render_to_string('mail/welcome_.html', email_data)
                    services.send_email_mailgun('Welcome to Avicrypto',
                                                body,
                                                email,
                                                from_email="postmaster")

                    content = {
                        "status":
                        "ok",
                        "message":
                        "Thank you for registration. Soon you will receive a confirmation mail."
                    }
                    return HttpResponse(json.dumps(content))
                else:
                    content = {
                        "status": "error",
                        "message": "Email address already exist."
                    }
                    return HttpResponse(json.dumps(content))
            else:
                content = {
                    "status": "error",
                    "message": "Invalid mobile number."
                }
                return HttpResponse(json.dumps(content))
        else:
            content = {"status": "error", "message": "Not and email address."}
            return HttpResponse(json.dumps(content))