from flask import Flask
from flask import request
from flask import session
from flask import render_template
from flask import Blueprint
from werkzeug.security import check_password_hash
bp = Blueprint('gen', __name__, url_prefix='/gen')
# Come at the app without a form, you're new. Expect to have lost
# your mind. (May or not be ideal)
@bp.route("/init")
def init():
# Initialize the state.
loggedin = session['loggedin'] = False
count = session['count'] = 1
session['hname'] = ''
return render_template('counterpage.html', count=1, loggedin=False)
from . import incr
@bp.route("/login",methods=["POST"])
@incr.inccnt
def logo():
# Get the creds.
userid = request.form['userid']
pwd = request.form['pwd']
#print("Foo ["+ userid + "] [" + pwd + "]")
if userid == '' and pwd == '':
return render_template('counterpage.html', count=session['count'], \
loggedin=False)
if userid == '' or pwd == '':
return render_template('counterpage.html', count=session['count'], \
loggedin=False, err='Incomplete Login')
# Verify the login, and generate an appropriate version of the page.
from . import db
success,text = db.vet_passwd(userid, pwd)
if success:
session['hname'] = text
session['loggedin'] = True
return render_template('counterpage.html', count=session['count'], \
loggedin=True, hname=session['hname'])
else:
return render_template('counterpage.html', count=session['count'], \
loggedin=False, err=text)
# This is for plain old next, which can't change login status.
@bp.route("/next",methods=["GET"])
@incr.inccnt
def count():
# Recover loggedinness.
loggedin = session['loggedin']
return render_template('counterpage.html', count=session['count'], \
loggedin=session['loggedin'], \
hname= session['hname'])
# Process logout.
@bp.route("/logout",methods=["GET"])
@incr.inccnt
def out():
# Not logged in now
session['loggedin'] = False
return render_template('counterpage.html', count=session['count'], \
loggedin=False)