def account(): link_form = LinkForm() weather_form = ChangeWeatherForm() quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") # Link Form Validation if link_form.validate_on_submit(): link = Link(title=link_form.name.data, address=link_form.address.data, user_id=current_user.id) if check_address(link_form.address.data) == "VALID": db.session.add(link) db.session.commit() flash("Link Added", 'success') return redirect(url_for('users.account')) else: flash("Invalid URL - try again. Make sure to add \"https://\"", "danger") return redirect(url_for('users.account')) # Change Weather Form Validation elif weather_form.validate_on_submit(): zip_code = str(weather_form.zip_code.data) current_user.zip_code = zip_code db.session.commit() flash("Zip Code Updated", 'success') return redirect(url_for('users.account')) return render_template('account.html', title="Account", quote_tuple=quote_tuple, link_form=link_form, weather_form=weather_form)
def reset_request(): if current_user.is_authenticated: return redirect(url_for('main.home')) quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") form = RequestResetForm() if form.validate_on_submit(): user = User.query.filter_by(email=form.email.data).first() send_reset_email(user) flash('An email has been sent with instruction to reset your password.', 'info') return redirect(url_for('users.login')) return render_template('reset_request.html', quote_tuple=quote_tuple, title='Reset Passwrod', form=form)
def login(): if current_user.is_authenticated: return redirect(url_for('main.home')) form = LoginForm() quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") if form.validate_on_submit(): user = User.query.filter_by(email=form.email.data).first() if user and bcrypt.check_password_hash(user.password, form.password.data): login_user(user, remember=form.remember.data) return redirect(url_for('main.home')) else: flash('Login Failed. Check password/email!', 'danger') return render_template('login.html', title="Login", form=form, quote_tuple=quote_tuple)
def register(): if current_user.is_authenticated: return redirect(url_for('main.home')) form = RegistrationForm() quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") 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, zip_code=form.zip_code.data) db.session.add(user) db.session.commit() flash('Your account has been created - you can now log in.', 'success') return redirect(url_for('users.login')) return render_template('register.html', title="Register", form=form, quote_tuple=quote_tuple)
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')) quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") 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 successfully reset.', 'success') return redirect(url_for('users.login')) return render_template("reset_token.html", quote_tuple=quote_tuple, title="Reset Password", form=form)
def about(): quote_tuple = generate_quote(os.getcwd() + "/homepage/static/quotes.json") return render_template("about.html", title="About this site", quote_tuple=quote_tuple)