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)
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)
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)
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)
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)
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)
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)
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()