This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
uwu-me/uwume/views.py

70 lines
2 KiB
Python
Raw Normal View History

try:
from .lib.helpers import get_static_paths, get_content_text
from .lib.classUser import User
except:
from lib.classUser import User
from lib.helpers import get_static_paths, get_content_text
from . import app
2020-03-01 18:53:42 -06:00
from flask import Flask, render_template, redirect, url_for, request
from flask_login import LoginManager, UserMixin, login_required
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(request):
token = request.headers.get('Authorization')
if(token is None):
token = request.args.get('token')
if(token is not None):
username, password = token.split(':') # naive token
user_entry = User.get(username)
if(user_entry is not None):
user = User(user_entry[0], user_entry[1])
if(user.password == password):
return user
return None
@login_required
@app.route('/home', methods=['GET'])
def home():
return render_template('home/index.html', user='admin', static_paths=get_static_paths(), content_text=get_content_text())
2020-03-01 18:53:42 -06:00
2020-03-01 18:53:42 -06:00
@app.route('/login', methods=['GET', 'POST'])
def login():
if(request.method == 'POST'):
2020-03-01 18:54:10 -06:00
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('home'))
2020-03-01 18:53:42 -06:00
elif(request.method == 'GET'):
return render_template('login/index.html', static_paths=get_static_paths(), content_text=get_content_text())
2020-03-01 18:53:42 -06:00
return 'ERROR: Invalid method.'
2020-03-01 18:53:42 -06:00
@app.route("/", methods=['GET'])
def hello():
return render_template('homepage.html', static_paths=get_static_paths(), content_text=get_content_text())
2020-03-01 18:53:42 -06:00
def main():
app.run(host='0.0.0.0', debug=True)
'''
@app.route("/", methods=["GET"])
def index():
return Response(response="Hello World!", status=200)
@app.route("/protected/", methods=["GET"])
@login_required
def protected():
return Response(response="Hello Protected World!", status=200)
'''