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 typing import cast, List
from flask import render_template, current_app, redirect, url_for, request, abort, session, flash 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.models import db, InfoBanner, Password, Deck
from app.forms import InfoBannerForm, DeckForm, PasswordForm, LoginForm from app.forms import InfoBannerForm, DeckForm, PasswordForm, LoginForm
from app.auth import user_loader, check_password from app.auth import user_loader, check_password
@@ -50,8 +50,9 @@ def admin_login():
@admin_bp.route("/", methods=["GET", "POST"]) @admin_bp.route("/", methods=["GET", "POST"])
@flask_login.login_required @flask_login.login_required
def admin(): @token_required
active_course = get_course(flask_login.current_user.active_course_id) def admin(token):
active_course = get_course(token.active_course)
if active_course is None: if active_course is None:
current_app.logger.error( current_app.logger.error(
f"Admin user {flask_login.current_user.id} has no active_course_id." 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"]) @admin_bp.route("/switch_course/<new_course>", methods=["POST"])
@flask_login.login_required @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 user = flask_login.current_user
if get_course(new_course): if get_course(new_course):
user.active_course_id = new_course token.active_course = new_course
db.session.commit() db.session.commit()
current_app.logger.info(f"Admin {user.id} switched to course ID {new_course}") current_app.logger.info(f"Admin {user.id} switched to course ID {new_course}")
return redirect(url_for("admin.admin")) return redirect(url_for("admin.admin"))