|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
from flask import render_template, url_for, flash, redirect
|
|
|
|
|
from flask import render_template, url_for, flash, redirect, request
|
|
|
|
|
from blogapp import app, db, bcrypt
|
|
|
|
|
from blogapp.forms import RegistrationForm, LoginForm
|
|
|
|
|
from blogapp.models import User, Post
|
|
|
|
|
|
|
|
|
|
from flask_login import login_user, current_user, logout_user, login_required # type: ignore
|
|
|
|
|
|
|
|
|
|
pagetitle = [
|
|
|
|
|
|
|
|
|
@ -14,6 +14,9 @@ pagetitle = [
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
'title': 'register'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
'title': 'account'
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
@ -26,6 +29,8 @@ def home():
|
|
|
|
|
|
|
|
|
|
@app.route("/register", methods=['GET', 'POST'])
|
|
|
|
|
def register():
|
|
|
|
|
if current_user.is_authenticated:
|
|
|
|
|
return redirect(url_for('home'))
|
|
|
|
|
form = RegistrationForm()
|
|
|
|
|
if form.validate_on_submit():
|
|
|
|
|
hashed_password = bcrypt.generate_password_hash(
|
|
|
|
@ -42,11 +47,25 @@ def register():
|
|
|
|
|
|
|
|
|
|
@app.route("/login", methods=['GET', 'POST'])
|
|
|
|
|
def login():
|
|
|
|
|
if current_user.is_authenticated:
|
|
|
|
|
return redirect(url_for('home'))
|
|
|
|
|
form = LoginForm()
|
|
|
|
|
if form.validate_on_submit():
|
|
|
|
|
if form.email.data == 'admin' and form.password.data == 'admin':
|
|
|
|
|
flash(f'You have been log in !')
|
|
|
|
|
return redirect(url_for('home'))
|
|
|
|
|
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)
|
|
|
|
|
next_page = request.args.get('next')
|
|
|
|
|
return redirect(next_page) if next_page else redirect(url_for('home'))
|
|
|
|
|
else:
|
|
|
|
|
flash(f'Login Unsuccessful')
|
|
|
|
|
flash('Login Unsuccessful. Please check email and password')
|
|
|
|
|
return render_template('login.html', title='login', form=form, pagetitle=pagetitle)
|
|
|
|
|
|
|
|
|
|
@app.route("/logout")
|
|
|
|
|
def logout():
|
|
|
|
|
logout_user()
|
|
|
|
|
return redirect(url_for('home'))
|
|
|
|
|
|
|
|
|
|
@app.route("/account")
|
|
|
|
|
@login_required
|
|
|
|
|
def account():
|
|
|
|
|
return render_template('account.html', title='account', pagetitle=pagetitle)
|