Adding login system

This commit is contained in:
Michał Gdula 2023-05-16 17:50:26 +03:00
parent 36be8993df
commit 27bf6f64ef
6 changed files with 51 additions and 11 deletions

View file

@ -1,8 +1,18 @@
from flask import Flask, render_template
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 website.extensions import db, migrate, assets
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')
@ -18,10 +28,25 @@ 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')
@app.route('/login', methods=["GET", "POST"])
def login():
return render_template('login.html')
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)