def reload_database():
    exit_reload = False
    try:
        response = requests.get(f'http://{host}:{port}')
        print(
            'The website seems to be running. Please stop it and run this file again.',
            file=sys.stderr)
        exit_reload = True
    except:
        pass
    if exit_reload:
        exit(11)
    try:
        os.remove('flasksite/site.db')
        print('previous DB file removed')
    except:
        print('no previous file found')

    db.create_all()

    # creating two users
    hashed_password = bcrypt.generate_password_hash('testing').decode('utf-8')
    default_user1 = User(username='******',
                         email='*****@*****.**',
                         image_file='another_pic.jpeg',
                         password=hashed_password)
    db.session.add(default_user1)

    hashed_password = bcrypt.generate_password_hash('testing2').decode('utf-8')
    default_user2 = User(username='******',
                         email='*****@*****.**',
                         image_file='7798432669b8b3ac.jpg',
                         password=hashed_password)
    db.session.add(default_user2)

    hashed_password = bcrypt.generate_password_hash('testing3').decode('utf-8')
    default_user3 = User(username='******',
                         email='*****@*****.**',
                         password=hashed_password)
    db.session.add(default_user3)

    # TODO: Here you should include the generation of rows for your database

    try:
        db.session.commit()
        print('\nFinalized - database created successfully!')
    except Exception as e:
        print('The operations were not successful. Error:', file=sys.stderr)
        print(e, file=sys.stderr)
        db.session.rollback()
def register():
    if current_user.is_authenticated:  # if the user is already authenticated
        return redirect(url_for('home'))  # redirect the user to the home page
    form = RegistrationForm()  # instanciates a new form -- lecture 6
    if form.validate_on_submit(
    ):  # if the user submitted data and the data is validated
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        # create a new instance of the class User -- lecture 6
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)  # adds the user to the database
        try:  # error handling
            # transaction management - databases
            # the changes to the database are only persisted once you commit the session
            db.session.commit()
            app.logger.debug(
                'New user created successfully.')  # error handling
            flash('Your account has been created! You are now able to log in.',
                  'success')  # show message to user
            return redirect(url_for('login'))
        except Exception as e:
            # transaction management - databases
            # if something goes wrong with the transaction, you need to rollback the session
            db.session.rollback()
            app.logger.critical(
                f'Error while creating the user {user}')  # error handling
            app.logger.exception(e)  # error handling
            flash(
                'The system encountered a problem while creating your account. Try again later.',
                'danger')
    return render_template('register.html', title='Register', form=form)
예제 #3
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data, password=hashed_password, email=form.email.data,)
        db.session.add(user)
        db.session.commit()
        flash('Your account created!', 'success')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
예제 #4
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.share'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user = User(username=form.username.data, email=form.email.data, password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in', 'success')
        return redirect(url_for('users.login'))
    return render_template('register.html', title='Register', form=form)
예제 #5
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('users.reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been updated! You are now able to log in', 'success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html', title='Reset Password', form=form)
예제 #6
0
def reg():
    if current_user.is_authenticated:
        return redirect(url_for('greetings'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(f"Welcome, {form.username.data}!", 'success')
        return redirect(url_for('login'))
    return render_template('reg.html', form=form)
예제 #7
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        if form.category.data == "patient":
            patient = Patient(first_name=form.first_name.data,
                              last_name=form.last_name.data,
                              email=form.email.data,
                              password=hashed,
                              sex=form.sex.data,
                              age=form.age.data,
                              category=form.category.data,
                              notes='N/A')
            db.session.add(patient)
            db.session.commit()
        else:
            physician = Physician(first_name=form.first_name.data,
                                  last_name=form.last_name.data,
                                  email=form.email.data,
                                  password=hashed,
                                  sex=form.sex.data,
                                  age=form.age.data,
                                  category=form.category.data,
                                  specialty='N/A',
                                  school='N/A')
            db.session.add(physician)
            db.session.commit()
        user = Users(email=form.email.data,
                     first_name=form.first_name.data,
                     last_name=form.last_name.data,
                     age=form.age.data,
                     password=hashed,
                     category=form.category.data)
        db.session.add(user)
        db.session.commit()
        flash(
            f'Account created for {form.category.data} {form.first_name.data} {form.last_name.data}!',
            'success')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
예제 #8
0
def register_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = verify_register_token(token)
    if not user:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('users.request_access'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(surname=form.surname.data,
                    forename=form.forename.data,
                    username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in',
              'success')
        return redirect(url_for('users.login'))
    return render_template('register.html', title='Register', form=form)
def reload_database():
    exit_reload = False
    try:
        response = requests.get(f'http://{host}:{port}')
        app.logger.critical(
            'The website seems to be running. Please stop it and run this file again.'
        )
        exit_reload = True
    except:
        pass
    if exit_reload:
        exit(11)
    try:
        os.remove('flasksite/site.db')
        app.logger.info('previous DB file removed')
    except:
        app.logger.info('no previous DB file found')

    assert not os.path.exists(
        'flasksite/site.db'
    ), 'It seems that site.db was not deleted. Please delete it manually!'

    db.create_all()

    # creating two users
    hashed_password = bcrypt.generate_password_hash('testing').decode('utf-8')
    default_user1 = User(username='******',
                         email='*****@*****.**',
                         image_file='another_pic.jpeg',
                         password=hashed_password)
    db.session.add(default_user1)

    hashed_password = bcrypt.generate_password_hash('testing2').decode('utf-8')
    default_user2 = User(username='******',
                         email='*****@*****.**',
                         image_file='7798432669b8b3ac.jpg',
                         password=hashed_password)
    db.session.add(default_user2)

    hashed_password = bcrypt.generate_password_hash('testing3').decode('utf-8')
    default_user3 = User(username='******',
                         email='*****@*****.**',
                         password=hashed_password)
    db.session.add(default_user3)

    try:
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        app.logger.critical('Error while committing the user insertion.')
        app.logger.exception(e)

    # testing if the users were added correctly
    assert len(
        User.query.all()) == 3, 'It seems that user failed to be inserted!'

    # TODO: Here you should include the generation of rows for your database

    try:
        db.session.commit()
        app.logger.info('Finalized - database created successfully!')
    except Exception as e:
        db.session.rollback()
        app.logger.critical('The operations were not successful.')
        app.logger.exception(e)
예제 #10
0
import os
from flasksite import db, bcrypt
from flasksite.models import User
db.create_all()

ADMIN_EMAIL = os.environ.get('ADMIN_EMAIL')
ADMIN_PASSWORD = os.environ.get('ADMIN_PASS')

if not User.query.filter_by(username='******').first():
    hashed_password = bcrypt.generate_password_hash(ADMIN_PASSWORD).decode(
        'utf-8')
    user = User(username='******', email=ADMIN_EMAIL, password=hashed_password)
    db.session.add(user)
    db.session.commit()