update
This commit is contained in:
@@ -250,6 +250,25 @@ def sitzung(response: Response, sid):
|
||||
return neu
|
||||
|
||||
|
||||
def mitglied(sid):
|
||||
"""Wer keinen Namen gewählt hat, darf zusehen, aber nichts eintragen.
|
||||
|
||||
Vorschläge, Sammlungen, Wertungen und Wünsche gehören einer Person.
|
||||
Ohne Namen hingen sie nur am Cookie: im geteilten Browser schriebe
|
||||
jeder auf dasselbe Konto, und nach dem Löschen der Cookies wäre alles
|
||||
weg. Die Knöpfe blendet die Oberfläche aus — das hier ist der Riegel.
|
||||
|
||||
Der Host braucht dafür ebenfalls einen Namen. Seine eigenen Knöpfe
|
||||
(drehen, eintragen, aufräumen) laufen über andere Routen.
|
||||
"""
|
||||
ich = users.besitzer(sid)
|
||||
if ich is None:
|
||||
raise HTTPException(
|
||||
status_code=403, detail="Dafür musst du oben deinen Namen wählen."
|
||||
)
|
||||
return ich
|
||||
|
||||
|
||||
# Der letzte Dreh, damit eine Seite mitten in der Animation nachziehen kann
|
||||
letzter_dreh = {"ergebnis": None, "start": 0.0}
|
||||
|
||||
@@ -324,6 +343,7 @@ async def vorschlagen(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
movie = await film_holen(movie_id)
|
||||
# Ein zweiter Vorschlag ersetzt den ersten, statt abgelehnt zu werden
|
||||
eintrag = suggestions.ersetzen(sid, movie, users.name_von(sid))
|
||||
@@ -336,6 +356,7 @@ async def vorschlagen(
|
||||
@app.delete("/api/suggestions")
|
||||
def vorschlag_loeschen(response: Response, filmabend_sid: str | None = Cookie(None)):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
entfernt = suggestions.loeschen(sid)
|
||||
if entfernt:
|
||||
events.senden("suggestions")
|
||||
@@ -366,6 +387,7 @@ def wunsch_anlegen(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
liste = features.anlegen(sid, text)
|
||||
if liste is None:
|
||||
raise HTTPException(status_code=400, detail="Kein Text")
|
||||
@@ -397,6 +419,7 @@ def wunsch_abstimmen(
|
||||
):
|
||||
"""Ein Klick setzt die Stimme, der nächste nimmt sie zurück."""
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
steht = features.abstimmen(feature_id, sid)
|
||||
if steht is None:
|
||||
raise HTTPException(status_code=404, detail="Wunsch nicht gefunden")
|
||||
@@ -421,6 +444,7 @@ def wunsch_anmerken(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
if not features.anmerken(feature_id, sid, text):
|
||||
raise HTTPException(status_code=400, detail="Kein Text oder Wunsch unbekannt")
|
||||
events.senden("features")
|
||||
@@ -451,6 +475,7 @@ async def merken(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
return wishlist.merken(sid, await film_holen(movie_id))
|
||||
|
||||
|
||||
@@ -461,6 +486,7 @@ def vergessen(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
return {"removed": wishlist.vergessen(sid, movie_id)}
|
||||
|
||||
|
||||
@@ -554,6 +580,7 @@ def bewerten(
|
||||
filmabend_sid: str | None = Cookie(None),
|
||||
):
|
||||
sid = sitzung(response, filmabend_sid)
|
||||
mitglied(sid)
|
||||
stars = max(1, min(watched.MAX_STERNE, stars))
|
||||
# Der Name kommt aus der Runde, nicht aus der Anfrage
|
||||
eintrag = watched.bewerten(watched_id, sid, stars, users.name_von(sid), text)
|
||||
|
||||
Reference in New Issue
Block a user