finished auth overhaul and started tenants

This commit is contained in:
2025-10-14 01:30:22 +02:00
parent 5591a77870
commit 02fc60151f
10 changed files with 215 additions and 86 deletions

View File

@@ -5,7 +5,7 @@ from typing import cast
from itsdangerous import BadSignature, URLSafeSerializer
from xkcdpass import xkcd_password
from .models import Deck, InfoBanner, Token, db
from .models import Deck, InfoBanner, Token, db, Course
def init_password_generator():
wordfile = xkcd_password.locate_wordfile()
@@ -57,7 +57,7 @@ def get_token() -> (Token | None):
return None
try:
id = serializer.loads(token)
token = db.session.execute(db.select(Token).filter_by(id=id)).scalar_one_or_none()
token = db.session.get(Token, id)
return token
except BadSignature:
return None
@@ -65,7 +65,6 @@ def get_token() -> (Token | None):
def retrieve_token(username : str):
return db.session.execute(db.select(Token).filter_by(name=username)).scalar_one_or_none()
def get_unlocked_decks(token: (Token|None)):
if token is None:
return []
@@ -90,3 +89,9 @@ def update_token(decks: list[Deck]):
else:
token.decks = list(set(decks + token.decks))
db.session.commit()
def get_course(id: int) -> (Course | None):
return db.session.get(Course, id)
def get_all_courses() -> list[Course]:
return db.session.execute(db.select(Course).order_by(Course.id)).scalars().all()