35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
|
from flask import render_template, redirect, request, url_for, flash, Blueprint
|
||
|
from realms import redirect_url
|
||
|
from realms.models import User
|
||
|
|
||
|
blueprint = Blueprint('auth', __name__)
|
||
|
|
||
|
|
||
|
@blueprint.route("/logout/")
|
||
|
def logout():
|
||
|
User.logout()
|
||
|
return redirect(url_for('root'))
|
||
|
|
||
|
|
||
|
@blueprint.route("/register/", methods=['GET', 'POST'])
|
||
|
def register():
|
||
|
if request.method == 'POST':
|
||
|
if User.register(request.form.get('username'), request.form.get('email'), request.form.get('password')):
|
||
|
return redirect(url_for('root'))
|
||
|
else:
|
||
|
# Login failed
|
||
|
return redirect(url_for('.register'))
|
||
|
else:
|
||
|
return render_template('auth/register.html')
|
||
|
|
||
|
|
||
|
@blueprint.route("/login/", methods=['GET', 'POST'])
|
||
|
def login():
|
||
|
if request.method == 'POST':
|
||
|
if User.auth(request.form['email'], request.form['password']):
|
||
|
return redirect(redirect_url(referrer=url_for('root')))
|
||
|
else:
|
||
|
flash("Email or Password invalid")
|
||
|
return redirect(url_for(".login"))
|
||
|
else:
|
||
|
return render_template('auth/login.html')
|