login and register
This commit is contained in:
parent
c97e3e8d4e
commit
88a00e3a4b
16 changed files with 243 additions and 12 deletions
|
|
@ -1,7 +1,7 @@
|
|||
from app import db
|
||||
from app.users import users
|
||||
from app.users.models import User
|
||||
# from forms import LoginForm, RequestResetForm, ResetPasswordForm, EditUserForm, AddUserForm
|
||||
from app.users.forms import LoginForm, RegisterUserForm#, RequestResetForm, ResetPasswordForm, EditUserForm, AddUserForm
|
||||
from flask import render_template, redirect, url_for, flash, request
|
||||
from flask_login import login_required, login_user, current_user, logout_user
|
||||
from werkzeug.security import check_password_hash, generate_password_hash
|
||||
|
|
@ -13,6 +13,52 @@ import os
|
|||
|
||||
@users.route('/user_page/<user_id>')
|
||||
@login_required
|
||||
def user_page(user_id):
|
||||
|
||||
return render_template('user_page.html')
|
||||
def user_page(user_id):
|
||||
if not int(current_user.id) == int(user_id):
|
||||
return redirect(url_for('main.dashboard'))
|
||||
user = User.query.filter_by(id=user_id).first()
|
||||
return render_template('user_page.html',
|
||||
user=user)
|
||||
|
||||
|
||||
@users.route('/')
|
||||
@users.route('/login', methods=('GET', 'POST'))
|
||||
def login():
|
||||
if current_user.is_authenticated:
|
||||
return redirect(url_for('main.dashboard'))
|
||||
form = LoginForm()
|
||||
if form.validate_on_submit():
|
||||
user = User.query.filter_by(email=form.email.data).first()
|
||||
if not user or not check_password_hash(user.password, form.password.data):
|
||||
flash('Please check your login details and try again.', 'bad')
|
||||
return redirect(url_for('users.login'))
|
||||
login_user(user, remember=form.remember.data)
|
||||
flash("You've been logged in successfully!", 'good')
|
||||
next_page = request.args.get('next')
|
||||
return redirect(next_page) if next_page else redirect(url_for('main.homepage'))
|
||||
return render_template('login.html',
|
||||
form=form)
|
||||
|
||||
@users.route('/logout')
|
||||
@login_required
|
||||
def logout():
|
||||
logout_user()
|
||||
flash('You\'ve been successfully logged out!')
|
||||
return redirect(url_for('main.homepage'))
|
||||
|
||||
@users.route('/register_user', methods=('GET', 'POST'))
|
||||
def register_user():
|
||||
form = RegisterUserForm()
|
||||
if form.validate_on_submit():
|
||||
user = User(
|
||||
first_name=form.first_name.data,
|
||||
last_name=form.last_name.data,
|
||||
email=form.email.data,
|
||||
password=generate_password_hash(form.password.data),
|
||||
user_type="User",
|
||||
)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
flash('Succesfully Registered!')
|
||||
return redirect(url_for('main.homepage'))
|
||||
return render_template('register_user.html', form=form)
|
||||
Loading…
Add table
Add a link
Reference in a new issue