def save_reset_pass(): from lib.email2 import send_email from models import User from models import Transaction from models import TransactionType from sbb import application, db form = ResetPassordForm(request.form) if form.validate_on_submit(): user = User.query.filter_by(email=request.form['email']).first() if user: user.password = User.hash_password(form.password.data) db.session.add(user) tr = Transaction(datetime.now(), None, 1) tr.transactionTypeId = TransactionType.query.filter_by( id=6).first().id db.session.add(tr) db.session.commit() html = 'Thank you! You have successfully reset your password.' subject = "Reset password" send_email(request.form['email'], subject, html, application.config) flash('Thank you! You have successfully reset your password.') else: flash('No user found with specified email.', 'warning') return redirect(request.referrer) else: flash_errors(form) return redirect(request.referrer) return redirect('login')
def login(): from random import randint from sbb import db from models import User from models import Transaction from models import TransactionType if request.method == 'GET': session['a'] = randint(1, 10) session['b'] = randint(1, 10) return render_template('home/login.html', a=session['a'], b=session['b']) form = LoginForm(request.form) if form.validate_on_submit(): captcha = form.captcha.data.strip() if captcha != '' and int(captcha) == session['a'] + session['b']: email = form.email.data password = form.password.data remember_me = False if 'remember_me' in request.form: remember_me = True user = User.query.filter_by(email=email).first() tr = TransactionType.query.filter_by(id=1).first() if user is None or not user.check_password(password): flash('Username or Password is invalid', 'error') if user: login_act = Transaction(date=datetime.now(), amount=None, status=0) login_act.account = user.account login_act.transactionType = tr db.session.add(login_act) db.session.commit() return redirect(url_for('home.login')) login_user(user, remember=remember_me) flash('Logged in successfully') login_act = Transaction(date=datetime.now(), amount=None, status=1) login_act.account = current_user.account login_act.transactionType = tr db.session.add(login_act) db.session.commit() return redirect( request.args.get('next') or url_for( 'userprofile.dashboard', _external=True, _scheme='https')) else: flash("Wrong captcha") flash_errors(form) session['a'] = randint(1, 10) session['b'] = randint(1, 10) return render_template('home/login.html', a=session['a'], b=session['b'])
def send_reset_pass(): from lib.email2 import send_email from models import User from sbb import application form = RequestResetPassordForm(request.form) if form.validate_on_submit(): user = User.query.filter_by(email=form.email.data).first() if user: token = generate_confirmation_token(form.email.data, application.config) reset_url = url_for('home.reset_password', token=token, _external=True) html = render_template('home/reset_password_email.html', reset_url=reset_url) subject = "Reset password request" send_email(form.email.data, subject, html, application.config) flash('We have sent you a link for resseting password.', 'success') else: flash('No user found with specified email.', 'warning') return redirect('view_reset_pass') else: flash_errors(form) return redirect('login')
def confirm_withdraw(): from sbb import db, application from models import AccountInvestments accWallets = current_user.account.wallets.all() accInvs = AccountInvestments.query.filter( AccountInvestments.accountId == current_user.account.id, AccountInvestments.isActive == 1).all() accWallets = None if len(accWallets) == 0 else accWallets from models import AccountWallets from forms import WithdrawForm from models import TransactionType from models import Transaction from models import AccountInvestments form = WithdrawForm(request.form) if form.validate_on_submit(): accWalletId = form.accWalletId.data.strip() amount = float(form.amount.data.strip()) source = form.source.data.strip() accW = AccountWallets.query.filter( AccountWallets.walletId == accWalletId, AccountWallets.accountId == current_user.account.id).first() balance = None if source == 'rbusd': if amount < application.config['MINUSDWITHDRAW']: flash('Min deposit amount is: {0}$'.format( str(application.config['MINUSDWITHDRAW']))) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) balance = float(current_user.account.balance) if accW.wallet.paymentSystemId == 4: flash( 'Please make sure that withdraw amout unit and wallet unit are matching' ) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) elif source == 'rbbtc': if amount < application.config['MINBTCWITHDRAW']: flash('Min deposit amount is: {0}B'.format( str(application.config['MINBTCWITHDRAW']))) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) balance = float(current_user.account.bitcoin) if accW.wallet.paymentSystemId == 3: flash( 'Please make sure that withdraw amout unit and wallet unit are matching' ) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) elif source.startswith('ai'): accInv = AccountInvestments.query.filter_by( id=float(source[2:])).first() if accInv.paymentSystemId == 4 and amount < application.config[ 'MINBTCWITHDRAW']: flash('Min deposit amount is: {0}B'.format( str(application.config['MINBTCWITHDRAW']))) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) if accInv.paymentSystemId == 3 and amount < application.config[ 'MINUSDWITHDRAW']: flash('Min deposit amount is: {0}$'.format( str(application.config['MINUSDWITHDRAW']))) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) balance = float(accInv.currentBalance - accInv.initialInvestment) if accInv.paymentSystemId != accW.wallet.paymentSystemId: flash( 'Please make sure that withdraw amout unit and wallet unit are matching' ) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) if amount <= 0: flash('Please specify positive amount') return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) elif balance < amount: flash('Sepcified withdraw money greater then your balance') return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) elif form.pin_number.data != current_user.pin: flash('Wrong PIN nubmer') return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs) else: trType = TransactionType.query.filter_by(id=5).first() dep_act = Transaction(date=datetime.datetime.now(), amount=amount, status=0) dep_act.account = current_user.account dep_act.transactionType = trType dep_act.unit = accW.wallet.unit db.session.add(dep_act) db.session.commit() return render_template('profile/confirm_withdraw.html', amount=amount, accWallet=accW, withId=dep_act.id, unit=accW.wallet.unit, source=source) flash_errors(form) return render_template('profile/withdraw.html', accWallets=accWallets, accInvs=accInvs)
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'])