Ejemplo n.º 1
0
def get_user(user_id):
    # Set initial values to be modified as we read through blocks
    name = None
    balance = 0
    transactions = []

    # Loop through all blocks in the blockchain
    for block in blockchain.chain:
        # Loop through all transactions in each block
        for transaction in block["transactions"]:
            if transaction["type"] == "new_user" and transaction[
                    "user_id"] == user_id:
                # Save initial user data
                user_id = transaction["user_id"]
                name = transaction["name"]
                balance += transaction["balance"]
            elif transaction["type"] == "transaction":
                if transaction["recipient"] == user_id:
                    # Add to the balance if this user received coins
                    balance += transaction["amount"]
                    transactions.append(transaction)
                elif transaction["sender"] == user_id:
                    # Subtract from the balance if this user spent coins
                    balance -= transaction["amount"]
                    transactions.append(transaction)

    # Create the resulting user object
    user = User(user_id, name, balance, transactions)
    return jsonify(user.serialize())
 def test_login_success(self):
     pw_hash = bcrypt.generate_password_hash('testpass')
     user = User(username='******', pw_hash=pw_hash)
     db.session.add(user)
     db.session.commit()
     res = self.login('testuser', 'testpass')
     soup = BeautifulSoup(res.data)
     d = soup.find('span', 'flashdata')
     assert d.text == u'Logged in successfully'
Ejemplo n.º 3
0
def register_view():
    form = RegistrationForm(request.form)
    if form.validate_on_submit():
        user = User(username=form.name.data, email=form.email.data, password=form.password.data)
        # form.populate_obj(user)
        db.session.add(user)
        db.session.commit()
        login_user(user)
        return redirect(url_for('index'))
    return render_template('users/register.html', form=form)
Ejemplo n.º 4
0
def create():
    form = SignUpForm(request.form)
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if not user:
            user = User(form.first_name.data, form.last_name.data,
                        form.username.data,
                        generate_password_hash(form.password.data))
            db.session.add(user)
            db.session.commit()
            flash('Created account. Please signin')
            return redirect(url_for('auth.signin'))
        flash('Username exists', 'error-message')
    return render_template("auth/signup.html", form=form)
Ejemplo n.º 5
0
def adduser(email, username, admin=False):
    """Register a new user."""
    from getpass import getpass

    password = getpass()
    password2 = getpass(prompt='Confirm: ')
    if password != password2:
        import sys

        sys.exit('Error: passwords do not match.')
    db.create_all()
    user = User(email=email,
                username=username,
                password=password,
                is_admin=admin)
    db.session.add(user)
    db.session.commit()
    print('User {0} was registered successfully.'.format(username))
Ejemplo n.º 6
0
def create():
    form = RegistrationForm()
    if form.validate():
        if form.password.data == form.password_confirmation.data:
            user = User(form.first_name.data, form.last_name.data,
                        form.email.data, form.phone.data,
                        generate_password_hash(form.password.data))
            db.session.add(user)
            db.session.commit()
            if user:
                session['user_id'] = user.id
                flash(f'Welcome back {user.first_name}!')
                return redirect(url_for('pages.about'))
            else:
                flash('Database error', 'main_warning')
        else:
            flash('Password and password confirmation do not match',
                  'form_errors')
    else:
        flash(form.errors, 'form_errors')

    return render_template('users/new.html', form=form)