fix: changed current_course to be in line with the normal app

This commit is contained in:
2026-04-20 01:16:28 +02:00
parent c12ad615a1
commit d3bf06dce7

View File

@@ -1,6 +1,6 @@
from typing import cast, List
from flask import render_template, current_app, redirect, url_for, request, abort, session, flash
from app.utils import get_active_banner, get_course, generate_password, get_available_decks, get_passwords, get_all_courses, is_safe_url, get_token, create_token, retrieve_token, set_cookie
from app.utils import get_active_banner, get_course, generate_password, get_available_decks, get_passwords, get_all_courses, is_safe_url, get_token, create_token, retrieve_token, set_cookie, token_required
from app.models import db, InfoBanner, Password, Deck
from app.forms import InfoBannerForm, DeckForm, PasswordForm, LoginForm
from app.auth import user_loader, check_password
@@ -50,8 +50,9 @@ def admin_login():
@admin_bp.route("/", methods=["GET", "POST"])
@flask_login.login_required
def admin():
active_course = get_course(flask_login.current_user.active_course_id)
@token_required
def admin(token):
active_course = get_course(token.active_course)
if active_course is None:
current_app.logger.error(
f"Admin user {flask_login.current_user.id} has no active_course_id."
@@ -119,10 +120,11 @@ def admin():
@admin_bp.route("/switch_course/<new_course>", methods=["POST"])
@flask_login.login_required
def switch_course_admin(new_course: int):
@token_required
def switch_course_admin(new_course: int, token):
user = flask_login.current_user
if get_course(new_course):
user.active_course_id = new_course
token.active_course = new_course
db.session.commit()
current_app.logger.info(f"Admin {user.id} switched to course ID {new_course}")
return redirect(url_for("admin.admin"))