forked from moepman/bk-dss
Refactor navigation.
This commit is contained in:
parent
516b448422
commit
4fff031fc4
32
index.py
32
index.py
@ -6,7 +6,7 @@ import ldap
|
|||||||
from redis import Redis
|
from redis import Redis
|
||||||
import uuid
|
import uuid
|
||||||
from wtforms.fields import PasswordField, SelectField, StringField, SubmitField
|
from wtforms.fields import PasswordField, SelectField, StringField, SubmitField
|
||||||
from wtforms.validators import Required
|
from wtforms.validators import EqualTo, Required
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config.from_pyfile('config.cfg')
|
app.config.from_pyfile('config.cfg')
|
||||||
@ -37,24 +37,27 @@ def isLoggedin():
|
|||||||
return 'uuid' in session and rdb.exists(session['uuid'])
|
return 'uuid' in session and rdb.exists(session['uuid'])
|
||||||
|
|
||||||
|
|
||||||
|
def buildNav():
|
||||||
|
nav = []
|
||||||
|
if isLoggedin():
|
||||||
|
nav.append('edit')
|
||||||
|
nav.append('logout')
|
||||||
|
else:
|
||||||
|
nav.append('login')
|
||||||
|
return nav
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
nav = None
|
|
||||||
if isLoggedin():
|
|
||||||
nav = ['edit', 'logout']
|
|
||||||
else:
|
|
||||||
nav = ['login']
|
|
||||||
|
|
||||||
return render_template('index.html', nav=nav)
|
return render_template('index.html', nav=buildNav())
|
||||||
|
|
||||||
|
|
||||||
@app.route('/edit', methods=['GET', 'POST'])
|
@app.route('/edit', methods=['GET', 'POST'])
|
||||||
def edit():
|
def edit():
|
||||||
if not isLoggedin():
|
if not isLoggedin():
|
||||||
nav = ['login']
|
return render_template('error.html', message="You are not logged in. Please log in first.", nav=buildNav())
|
||||||
return render_template('error.html', message="You are not logged in. Please log in first.", nav=nav)
|
|
||||||
|
|
||||||
nav = ['edit', 'logout']
|
|
||||||
form = EditForm()
|
form = EditForm()
|
||||||
user = rdb.hget(session['uuid'], 'user')
|
user = rdb.hget(session['uuid'], 'user')
|
||||||
|
|
||||||
@ -68,7 +71,7 @@ def edit():
|
|||||||
except ldap.INVALID_CREDENTIALS as e:
|
except ldap.INVALID_CREDENTIALS as e:
|
||||||
form.user.errors.append(e.message['desc'])
|
form.user.errors.append(e.message['desc'])
|
||||||
l.unbind_s()
|
l.unbind_s()
|
||||||
return render_template('edit.html', form=form, nav=nav)
|
return render_template('edit.html', form=form, nav=buildNav())
|
||||||
else:
|
else:
|
||||||
# TODO display success message
|
# TODO display success message
|
||||||
rdb.hset(session['uuid'], 'pswd', npwd)
|
rdb.hset(session['uuid'], 'pswd', npwd)
|
||||||
@ -76,12 +79,11 @@ def edit():
|
|||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
|
|
||||||
form.user.data = user
|
form.user.data = user
|
||||||
return render_template('edit.html', form=form, nav=nav)
|
return render_template('edit.html', form=form, nav=buildNav())
|
||||||
|
|
||||||
|
|
||||||
@app.route('/login', methods=['GET', 'POST'])
|
@app.route('/login', methods=['GET', 'POST'])
|
||||||
def login():
|
def login():
|
||||||
nav = ['login']
|
|
||||||
form = LoginForm()
|
form = LoginForm()
|
||||||
|
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
@ -93,7 +95,7 @@ def login():
|
|||||||
except ldap.INVALID_CREDENTIALS as e:
|
except ldap.INVALID_CREDENTIALS as e:
|
||||||
form.pswd.errors.append(e.message['desc'])
|
form.pswd.errors.append(e.message['desc'])
|
||||||
l.unbind_s()
|
l.unbind_s()
|
||||||
return render_template('login.html', form=form, nav=nav)
|
return render_template('login.html', form=form, nav=buildNav())
|
||||||
l.unbind_s()
|
l.unbind_s()
|
||||||
|
|
||||||
session['uuid'] = str(uuid.uuid4())
|
session['uuid'] = str(uuid.uuid4())
|
||||||
@ -103,7 +105,7 @@ def login():
|
|||||||
rdb.expire(session['uuid'], app.config.get('SESSION_TIMEOUT', 3600))
|
rdb.expire(session['uuid'], app.config.get('SESSION_TIMEOUT', 3600))
|
||||||
|
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
return render_template('login.html', form=form, nav=nav)
|
return render_template('login.html', form=form, nav=buildNav())
|
||||||
|
|
||||||
|
|
||||||
@app.route('/logout')
|
@app.route('/logout')
|
||||||
|
Loading…
Reference in New Issue
Block a user