fix: changed current_course to be in line with the normal app
This commit is contained in:
@@ -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"))
|
||||||
|
|||||||
Reference in New Issue
Block a user