mirror of
https://github.com/Fluffy-Bean/GameExpo23.git
synced 2025-06-02 23:43:12 +00:00
61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
from flask import Flask, render_template, request, redirect, flash
|
|
from flask_login import login_required, login_user, logout_user, current_user
|
|
from flask_assets import Bundle
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import StringField
|
|
from wtforms.validators import DataRequired
|
|
from website.models import Users
|
|
from website.extensions import db, migrate, login_manager, assets
|
|
from website.config import INSTANCE_DIR, MIGRATION_DIR
|
|
|
|
|
|
class LoginForm(FlaskForm):
|
|
uuid = StringField(
|
|
"uuid",
|
|
validators=[DataRequired()],
|
|
render_kw={"placeholder": "12345678-ABCD-ABCD-ABCD-123456789EFG"},
|
|
)
|
|
|
|
|
|
app = Flask(__name__, instance_path=INSTANCE_DIR)
|
|
app.config.from_pyfile("config.py")
|
|
|
|
db.init_app(app)
|
|
migrate.init_app(app, db, directory=MIGRATION_DIR)
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
assets.init_app(app)
|
|
styles = Bundle(
|
|
"sass/styles.sass",
|
|
filters="libsass, cssmin",
|
|
output="gen/packed.css",
|
|
depends="sass/*.sass",
|
|
)
|
|
assets.register("styles", styles)
|
|
scripts = Bundle("js/*.js", filters="jsmin", output="gen/packed.js")
|
|
assets.register("scripts", scripts)
|
|
|
|
|
|
@login_manager.user_loader
|
|
def load_user(user_id):
|
|
return Users.get(user_id)
|
|
|
|
|
|
@app.route("/")
|
|
def index():
|
|
return render_template("index.html")
|
|
|
|
|
|
@app.route("/login", methods=["GET", "POST"])
|
|
def login():
|
|
form = LoginForm()
|
|
|
|
if form.validate_on_submit():
|
|
if user := Users.query.filter_by(uuid=str(form.uuid)).first():
|
|
login_user(user, remember=True)
|
|
return redirect(index)
|
|
else:
|
|
flash("Inncorrect login")
|
|
|
|
return render_template("login.html", form=form)
|