diff --git a/Tweeder.py b/Tweeder.py index be64830..ead9d51 100644 --- a/Tweeder.py +++ b/Tweeder.py @@ -1,40 +1,81 @@ -from flask import Flask, render_template, request +from flask import Flask, render_template, request, redirect, url_for, session from backend import accounts app = Flask(__name__) +app.secret_key = "eVZ4EmVK70iETb03KqDAXV5sBHb3T73t" @app.route('/') -def hello_world(): - return render_template("index.html") - - -@app.route('/login', methods=['POST']) -def login(): - - username = request.form['username'] - password = request.form['password'] - - login_attempt = accounts.login(username, password) - return render_template('status.html', - title_status=login_attempt['status'].title(), - status=login_attempt['status'], - message=login_attempt['message']) - - -@app.route('/register', methods=['POST']) -def register(): - - username = request.form['username'] - email = request.form['email'] - password = request.form['password'] - confirm_password = request.form['confirm-password'] - - if password == confirm_password: - register_attempt = accounts.create_account(email, username, password) - return register_attempt['message'] +def index(): + if 'username' in session.keys(): + return redirect(url_for('profile')) else: - return "Passwords do not match!" + return redirect(url_for('register')) + + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + username = request.form['username'] + password = request.form['password'] + + login_attempt = accounts.login(username, password) + if login_attempt['status'] == 'success': + session['username'] = username + return redirect(url_for('profile')) + else: + return render_template('login.html', + status=login_attempt['status'], + message=login_attempt['message']) + elif request.method == 'GET': + return render_template('login.html') + + +@app.route('/register', methods=['GET', 'POST']) +def register(): + if request.method == "POST": + username = request.form['username'] + email = request.form['email'] + password = request.form['password'] + confirm_password = request.form['confirm-password'] + + if password == confirm_password: + register_attempt = accounts.create_account(email, username, password) + return render_template('register.html', + status=register_attempt['status'], + message=register_attempt['message']) + else: + return render_template("register.html", + status="danger", + message="Passwords do not match!") + elif request.method == 'GET': + return render_template('register.html') + + +@app.route('/profile', methods=['GET']) +@app.route('/profile/', methods=['GET']) +def profile(name=None): + + logged_in = True if ('username' in session.keys()) else False + if not logged_in and name is None: + return redirect(url_for('index')) + if logged_in and name is None: + name = session['username'] + name = name.lower() + logged_in = 'username' in session.keys() + dname = accounts.get_display_name(name) + return render_template('profile.html', user=accounts.account_details(name), logged_in=logged_in) + + +@app.route('/logout') +def logout(): + session.pop('username') + return redirect(url_for('login')) + + +@app.route('/layout') +def layout(): + return render_template('layout.html', logged_in=True) if __name__ == '__main__':