WIP
This commit is contained in:
@@ -27,6 +27,7 @@ from .auth import check_password, user_loader
|
||||
from .forms import DeckForm, InfoBannerForm, LoginForm, PasswordForm
|
||||
from .models import Deck, InfoBanner, Password, db
|
||||
from .utils import (
|
||||
create_token,
|
||||
generate_password,
|
||||
generate_token,
|
||||
get_active_banner,
|
||||
@@ -49,18 +50,6 @@ def on_connect():
|
||||
if flask_login.current_user.is_authenticated:
|
||||
join_room("instructor")
|
||||
|
||||
@main.before_request
|
||||
def ensure_cookie():
|
||||
token = get_token()
|
||||
if token:
|
||||
return
|
||||
else:
|
||||
token = generate_token()
|
||||
|
||||
resp = make_response(redirect(request.url))
|
||||
resp.set_cookie('access_token', serialize_token(token), httponly=True)
|
||||
return resp
|
||||
|
||||
@main.after_request
|
||||
def inject_confused_button(response):
|
||||
if True:
|
||||
@@ -109,10 +98,48 @@ def inject_confused_button(response):
|
||||
def index():
|
||||
token = get_token()
|
||||
if not token:
|
||||
abort(500)
|
||||
return redirect(url_for("main.register"))
|
||||
else:
|
||||
return render_template('index.html', active_banner=get_active_banner(), decks=get_unlocked_decks(token), user_name=token.name)
|
||||
|
||||
@main.route('/register', methods=['POST', 'GET'])
|
||||
def register():
|
||||
"""
|
||||
Handles user registration.
|
||||
GET: Renders the registration form.
|
||||
POST: Processes the form submission.
|
||||
"""
|
||||
if request.method == 'POST':
|
||||
# Get form data
|
||||
user_name = request.form.get('username')
|
||||
acknowledge = request.form.get('acknowledge')
|
||||
|
||||
# Simple validation
|
||||
if not user_name:
|
||||
flash('Username is required.', 'error')
|
||||
return render_template('register.html')
|
||||
|
||||
if retrieve_token(user_name):
|
||||
flash(f'The username "{user_name}" is already taken.', 'error')
|
||||
return render_template('register.html')
|
||||
|
||||
if not acknowledge:
|
||||
flash('You must acknowledge the important information to proceed.', 'error')
|
||||
return render_template('register.html')
|
||||
|
||||
# If all validation passes, "register" the user
|
||||
token = create_token(user_name)
|
||||
print(f"User registered: {user_name}")
|
||||
|
||||
|
||||
resp = make_response(redirect(url_for("main.index")))
|
||||
resp.set_cookie('access_token', serialize_token(token), httponly=True)
|
||||
flash(f'Registration successful for {user_name}!', 'success')
|
||||
# Redirect to the login page after successful registration
|
||||
return resp
|
||||
|
||||
# If GET request, render the form
|
||||
return render_template('register.html')
|
||||
|
||||
@main.route('/login', methods=['POST', 'GET'])
|
||||
def login():
|
||||
|
||||
Reference in New Issue
Block a user