Bump Codebase Version
This commit is contained in:
127
apps/authentication/routes.py
Normal file
127
apps/authentication/routes.py
Normal file
@ -0,0 +1,127 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
Copyright (c) 2019 - present AppSeed.us
|
||||
"""
|
||||
|
||||
from flask import render_template, redirect, request, url_for
|
||||
from flask_login import (
|
||||
current_user,
|
||||
login_user,
|
||||
logout_user
|
||||
)
|
||||
|
||||
from apps import db, login_manager
|
||||
from apps.authentication import blueprint
|
||||
from apps.authentication.forms import LoginForm, CreateAccountForm
|
||||
from apps.authentication.models import Users
|
||||
|
||||
from apps.authentication.util import verify_pass
|
||||
|
||||
|
||||
@blueprint.route('/')
|
||||
def route_default():
|
||||
return redirect(url_for('authentication_blueprint.login'))
|
||||
|
||||
|
||||
# Login & Registration
|
||||
|
||||
@blueprint.route('/login', methods=['GET', 'POST'])
|
||||
def login():
|
||||
login_form = LoginForm(request.form)
|
||||
if 'login' in request.form:
|
||||
|
||||
# read form data
|
||||
username = request.form['username']
|
||||
password = request.form['password']
|
||||
|
||||
# Locate user
|
||||
user = Users.query.filter_by(username=username).first()
|
||||
|
||||
# Check the password
|
||||
if user and verify_pass(password, user.password):
|
||||
|
||||
login_user(user)
|
||||
return redirect(url_for('authentication_blueprint.route_default'))
|
||||
|
||||
# Something (user or pass) is not ok
|
||||
return render_template('accounts/login.html',
|
||||
segment = 'login',
|
||||
msg='Wrong user or password',
|
||||
form=login_form)
|
||||
|
||||
if not current_user.is_authenticated:
|
||||
return render_template('accounts/login.html',
|
||||
segment = 'login',
|
||||
form=login_form)
|
||||
return redirect(url_for('home_blueprint.index'))
|
||||
|
||||
|
||||
@blueprint.route('/register', methods=['GET', 'POST'])
|
||||
def register():
|
||||
create_account_form = CreateAccountForm(request.form)
|
||||
if 'register' in request.form:
|
||||
|
||||
username = request.form['username']
|
||||
email = request.form['email']
|
||||
|
||||
# Check usename exists
|
||||
user = Users.query.filter_by(username=username).first()
|
||||
if user:
|
||||
return render_template('accounts/register.html',
|
||||
msg='Username already registered',
|
||||
segment = 'register',
|
||||
success=False,
|
||||
form=create_account_form)
|
||||
|
||||
# Check email exists
|
||||
user = Users.query.filter_by(email=email).first()
|
||||
if user:
|
||||
return render_template('accounts/register.html',
|
||||
msg='Email already registered',
|
||||
segment = 'register',
|
||||
success=False,
|
||||
form=create_account_form)
|
||||
|
||||
# else we can create the user
|
||||
user = Users(**request.form)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
|
||||
return render_template('accounts/register.html',
|
||||
msg='User created please <a href="/login">login</a>',
|
||||
segment = 'register',
|
||||
success=True,
|
||||
form=create_account_form)
|
||||
|
||||
else:
|
||||
return render_template( 'accounts/register.html',
|
||||
segment = 'register',
|
||||
form=create_account_form)
|
||||
|
||||
|
||||
@blueprint.route('/logout')
|
||||
def logout():
|
||||
logout_user()
|
||||
return redirect(url_for('authentication_blueprint.login'))
|
||||
|
||||
|
||||
# Errors
|
||||
|
||||
@login_manager.unauthorized_handler
|
||||
def unauthorized_handler():
|
||||
return render_template('home/page-403.html'), 403
|
||||
|
||||
|
||||
@blueprint.errorhandler(403)
|
||||
def access_forbidden(error):
|
||||
return render_template('home/page-403.html'), 403
|
||||
|
||||
|
||||
@blueprint.errorhandler(404)
|
||||
def not_found_error(error):
|
||||
return render_template('home/page-404.html'), 404
|
||||
|
||||
|
||||
@blueprint.errorhandler(500)
|
||||
def internal_error(error):
|
||||
return render_template('home/page-500.html'), 500
|
||||
Reference in New Issue
Block a user