Example #1
0
def registration():
    usernames = [x.username for x in User.query.all()]
    emails = [y.email for y in User.query.all()]
    rFirstName = request.form["rfirstname"]
    rLastName = request.form["rlastname"]
    email = request.form["email"]
    amount = request.form["amount"]
    rUsername = request.form["rusername"]
    rPassword = request.form["rpassword"]
    cPassword = request.form["cpassword"]
    if rUsername in usernames or email in emails:
        # username and email should be blank because one of them is already being used
        return render_template("registration.html", rpassword=rPassword, cpassword=cPassword, rfirstname=rFirstName, rlastname=rLastName, amount=amount) 
        '''TODO: I want to be able to return to the registration page with a notifcation about the username/email
        already being used.  How can I do this?'''
    elif rFirstName == "" or rLastName == "" or email == "" or amount == "" or rUsername == "" or rPassword == "" or cPassword == "":
        return render_template("registration.html", rusername=rUsername, rpassword=rPassword, cpassword=cPassword, alert1=True)
    else:
        if rPassword == cPassword:
            u1 = User(username=rUsername, password_hash=rPassword, email=email, first_name=rFirstName, last_name=rLastName)
            a1 = Account(balance=amount)

            db.session.add(u1)
            db.session.add(a1)

            u1.account = a1

            db.session.commit()
            print("Added user to database")
        else:
            # don't reload cPassword because the passwords did not match
            return render_template("registration.html", rusername=rUsername, rpassword=rPassword, rfirstname=rFirstName, rlastname=rLastName, email=email, amount=amount, alert2=True)
            '''TODO: Add notification saying the passwords do not match'''
    return render_template("homepage.html", success=True)
Example #2
0
def create_user(account):
    """ Find existing user or create new user """
    user = User(username=u'araikc',
                password=u'alalo',
                email=u'*****@*****.**',
                role='admin',
                confirmed=1)
    user.account = account
    user.pin = "1234"
    db.session.add(user)
    #db.session.commit()
    return user
Example #3
0
def register():
    captcha_id = current_app.config.get('CAPTCHA_ID')
    private_key = current_app.config.get('PRIVATE_KEY')
    BASE_URL =  current_app.config.get('BASE_URL')
    product = "embed"
    if request.method == "POST":
        account = request.form['account']
        password = request.form['password']
        challenge = request.form['geetest_challenge']
        validate = request.form['geetest_validate']
        seccode = request.form['geetest_seccode']
        gt = geetest.geetest(captcha_id, private_key)
        result = gt.geetest_validate(challenge, validate, seccode)
        if result:
            user = User()
            user.account = account
            user.password = password
            session =  db.DBSession()
            session.add(user)
            session.commit()
            session.close()
            flash('注册成功!')
            return redirect(location='/')
        else:
            flash('验证失败!')
            gt = geetest.geetest(captcha_id, private_key)
            url = ""
            httpsurl = ""
            try:
                challenge = gt.geetest_register()
            except Exception as e:
                challenge = ""
            if len(challenge) == 32:
                url = "http://%s%s&challenge=%s&product=%s" % (BASE_URL, captcha_id, challenge, product)
                httpsurl = "https://%s%s&challenge=%s&product=%s" % (BASE_URL, captcha_id, challenge, product)
                return render_template('user/register.html', url=url, httpsurl=httpsurl)
    else:
        gt = geetest.geetest(captcha_id, private_key)
        url = ""
        httpsurl = ""
        try:
            challenge = gt.geetest_register()
        except Exception as e:
            challenge = ""
        if len(challenge) == 32:
            url = "http://%s%s&challenge=%s&product=%s" % (BASE_URL, captcha_id, challenge, product)
            httpsurl = "https://%s%s&challenge=%s&product=%s" % (BASE_URL, captcha_id, challenge, product)
        return render_template('user/register.html', url=url, httpsurl=httpsurl)

    return render_template('user/register.html')
Example #4
0
def login(request):
    if request.method == 'GET':
        account = request.GET.get('account')
        password = request.GET.get('password')

        user = User()
        user.account = account
        user.password = password
        user.save()

        response_str = "Login successfully! Account: %s, Password: %s" % (
            user.account, user.password)
        return HttpResponse(response_str)
        # return HttpResponse("Login Successfully GET!")
    elif request.method == 'POST':
        return HttpResponse("Login Successfully POST!")
Example #5
0
def sign_up(request):
    if request.method == "POST":
        account = request.POST.get('account', '')
        password = request.POST.get('password', '')
        if not account or not password:
            return JsonResponse(resultMsg['NeedParameter'])
        is_exist = User.objects(account=account).filter().count()
        if is_exist:
            return JsonResponse(resultMsg['ExistUser'])
        user = User()
        user.account = account
        user.password = password
        user.save()
        kw = {
            '_id': str(user.id),
            'nickname': user.nickname,
            'avatar': user.avatar,
            'token': user.token
        }
        process_token(**kw)
        return JsonResponse(resultMsg['SignUpSuccess'])
    raise Http404
Example #6
0
def sign_up(request):
    if request.method == "POST":
        account = request.POST.get('account', '')
        password = request.POST.get('password', '')
        if not account or not password:
            return JsonResponse(resultMsg['NeedParameter'])
        is_exist = User.objects(account=account).filter().count()
        if is_exist:
            return JsonResponse(resultMsg['ExistUser'])
        user = User()
        user.account = account
        user.password = password
        user.save()
        kw = {
            '_id': str(user.id),
            'nickname': user.nickname,
            'avatar': user.avatar,
            'token': user.token
        }
        process_token(**kw)
        return JsonResponse(resultMsg['SignUpSuccess'])
    raise Http404
Example #7
0
def register():
    from random import randint

    from sbb import application, db
    from lib.email2 import send_email
    from models import User, ReferralProgram, Account, Referral

    referral = None
    if 'referral' in session:
        referral = session['referral']

    if request.method == 'GET':
        session['a'] = randint(1, 10)
        session['b'] = randint(1, 10)
        referral = None
        if 'referral' in session:
            referral = session['referral']
        return render_template('home/register.html',
                               referral=referral,
                               a=session['a'],
                               b=session['b'])
    form = RegistrationForm(request.form)
    if form.validate_on_submit():
        captcha = form.captcha.data.strip()
        if captcha != '' and int(captcha) == session['a'] + session['b']:
            cur = User.query.filter_by(username=form.username.data).first()
            ecur = User.query.filter_by(email=form.email.data).first()

            if cur is None and ecur is None:

                # refereal program 521
                rp = ReferralProgram.query.filter_by(id=1).first()

                # Account User
                account = Account(0, 0)
                account.referralProgram = rp
                db.session.add(account)
                #db.session.commit()

                user = User(username=form.username.data,
                            password=form.password.data,
                            email=form.email.data)
                user.account = account
                if form.fb.data != '':
                    user.fb = form.fb.data
                if form.skype.data != '':
                    user.skype = form.skype.data
                user.pin = form.pin_number.data
                db.session.add(user)
                #db.session.commit()

                # referral account
                refUsername = form.refemail.data.strip()
                if refUsername != '':
                    refUser = User.query.filter_by(
                        username=refUsername).first()
                    if refUser:
                        referral = Referral(accountId=account.id)
                        referral.referralAccount = refUser.account
                        db.session.add(referral)
                    else:
                        flash("Wrong referral. Referral data skiped.")

                db.session.commit()

                token = generate_confirmation_token(user.email,
                                                    application.config)
                confirm_url = url_for('home.confirm_email',
                                      token=token,
                                      _external=True)
                html = render_template('home/activate_email.html',
                                       confirm_url=confirm_url)
                subject = "Please confirm your email"
                send_email(user.email, subject, html, application.config)

                login_user(user)
                flash('A confirmation email has been sent via email.',
                      'success')
                return redirect(url_for('home.unconfirmed'))
            else:
                flash('User with specified data already exists in a system',
                      'warning')
        else:
            flash("Wrong captcha")
    else:
        flash_errors(form)
    session['a'] = randint(1, 10)
    session['b'] = randint(1, 10)
    return render_template('home/register.html',
                           referral=referral,
                           a=session['a'],
                           b=session['b'])
Example #8
0
def init_dev_data():
    """Initializes database with data for development and testing"""
    db.drop_all()
    db.create_all()

    print("Initialized Cashify Database.")
    a1 = Account(balance=400.00)
    u1 = User(username="******", password_hash="Vogel")
    a2 = Account(balance=0.00)
    u2 = User(username="******", password_hash="Torpey")

    db.session.add(a1)
    db.session.add(u1)
    db.session.add(a2)
    db.session.add(u2)

    u1.account = a1
    u2.account = a2

    # Transaction dummy data for Tyler
    balance = 400.00
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t1 = Transaction(amount=amount, date="2019-05-11", category="Other", current_balance=round(balance, 2))
    db.session.add(t1)
    a1.transactions.append(t1)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t2 = Transaction(amount=amount, date="2019-05-11", category="Income", current_balance=round(balance, 2))
    db.session.add(t2)
    a1.transactions.append(t2)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t3 = Transaction(amount=amount, date="2019-06-11", category="Entertainment", current_balance=round(balance, 2))
    db.session.add(t3)
    a1.transactions.append(t3)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t4 = Transaction(amount=amount, date="2019-06-11", category="Restaurants", current_balance=round(balance, 2))
    db.session.add(t4)
    a1.transactions.append(t4)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t5 = Transaction(amount=amount, date="2019-06-11", category="Restaurants", current_balance=round(balance, 2))
    db.session.add(t5)
    a1.transactions.append(t5)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t6 = Transaction(amount=amount, date="2019-07-04", category="Savings", current_balance=round(balance, 2))
    db.session.add(t6)
    a1.transactions.append(t6)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t7 = Transaction(amount=amount, date="2019-07-06", category="Income", current_balance=round(balance, 2))
    db.session.add(t7)
    a1.transactions.append(t7)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t8 = Transaction(amount=amount, date="2019-07-08", category="Other", current_balance=round(balance, 2))
    db.session.add(t8)
    a1.transactions.append(t8)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t9 = Transaction(amount=amount, date="2019-07-10", category="Groceries", current_balance=round(balance, 2))
    db.session.add(t9)
    a1.transactions.append(t9)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t10 = Transaction(amount=amount, date="2019-07-12", category="Utilities", current_balance=round(balance, 2))
    db.session.add(t10)
    a1.transactions.append(t10)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t11 = Transaction(amount=amount, date="2019-07-14", category="Other", current_balance=round(balance, 2))
    db.session.add(t11)
    a1.transactions.append(t11)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t12 = Transaction(amount=amount, date="2019-07-15", category="Other", current_balance=round(balance, 2))
    db.session.add(t12)
    a1.transactions.append(t12)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t13 = Transaction(amount=amount, date="2019-07-16", category="Income", current_balance=round(balance, 2))
    db.session.add(t13)
    a1.transactions.append(t13)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t14 = Transaction(amount=amount, date="2019-07-18", category="Entertainment", current_balance=round(balance, 2))
    db.session.add(t14)
    a1.transactions.append(t14)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t15 = Transaction(amount=amount, date="2019-07-19", category="Other", current_balance=round(balance, 2))
    db.session.add(t15)
    a1.transactions.append(t15)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t16 = Transaction(amount=amount, date="2019-07-19", category="Auto", current_balance=round(balance, 2))
    db.session.add(t16)
    a1.transactions.append(t16)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t17 = Transaction(amount=amount, date="2019-07-20", category="Income", current_balance=round(balance, 2))
    db.session.add(t17)
    a1.transactions.append(t17)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t18 = Transaction(amount=amount, date="2019-07-22", category="Healthcare", current_balance=round(balance, 2))
    db.session.add(t18)
    a1.transactions.append(t18)
    amount = -round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t19 = Transaction(amount=amount, date="2019-07-22", category="Restaurants", current_balance=round(balance, 2))
    db.session.add(t19)
    a1.transactions.append(t19)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t20 = Transaction(amount=amount, date="2019-07-23", category="Other", current_balance=round(balance, 2))
    db.session.add(t20)
    a1.transactions.append(t20)
    amount = round(random.uniform(1.00, 100.00), 2)
    balance += amount
    t21 = Transaction(amount=amount, date="2019-07-24", category="Other", current_balance=round(balance, 2))
    db.session.add(t21)
    a1.transactions.append(t21)

    a1.balance = balance


    #Setup Budget
    b = Budget(income = 1000, rent = 200, education = 100, groceries = 50, 
    home_improvement = 50, entertainment = 75, savings = 100, utilities = 25, \
    auto_gas = 50, healthcare = 50, restaurants = 50, shopping = 50, travel = 100, other = 200)

    a1.budget = b

    db.session.commit()
    print("Added dummy data.")