update
This commit is contained in:
@@ -105,7 +105,8 @@ def holen(clip_id, session_id):
|
||||
|
||||
|
||||
def alle(session_id, host=False):
|
||||
"""Die eigenen Clips; der Host sieht alle — er räumt auf."""
|
||||
"""Alle Clips, für jeden. Ändern darf nur der Besitzer — und der Host,
|
||||
der aufräumt; dafür steht an jedem Clip, ob er einem gehört."""
|
||||
ich = besitzer(session_id)
|
||||
with connect() as conn:
|
||||
rows = conn.execute(
|
||||
@@ -114,11 +115,7 @@ def alle(session_id, host=False):
|
||||
"LEFT JOIN movies m ON m.id = c.movie_id "
|
||||
"ORDER BY c.marke_at DESC"
|
||||
).fetchall()
|
||||
return [
|
||||
_oeffentlich(r, session_id, ich)
|
||||
for r in rows
|
||||
if host or gehoert_mir(r, session_id, ich)
|
||||
]
|
||||
return [_oeffentlich(r, session_id, ich) for r in rows]
|
||||
|
||||
|
||||
def _zeile(conn, clip_id):
|
||||
@@ -189,10 +186,10 @@ def playback_url(row, vorher=None, dauer=None):
|
||||
|
||||
|
||||
def zeile(clip_id, session_id, host):
|
||||
"""Die rohe Zeile, wenn man sie sehen darf: Besitzer oder Host."""
|
||||
"""Die rohe Zeile zum Ansehen — Clips sieht jeder. Ändern und
|
||||
Löschen prüfen gesondert, ob es der Besitzer oder der Host ist."""
|
||||
with connect() as conn:
|
||||
row = _zeile(conn, clip_id)
|
||||
return row if _darf(row, session_id, host) else None
|
||||
return _zeile(conn, clip_id)
|
||||
|
||||
|
||||
async def schneiden(clip_id, session_id, host):
|
||||
|
||||
@@ -116,11 +116,12 @@ def test_taste_c_nimmt_den_film_der_laufenden_aufnahme(client, zuschauer, hostmo
|
||||
assert marke(client)["movie_id"] == film(3)
|
||||
|
||||
|
||||
def test_fremde_sehen_nichts_der_host_alles(client, client2, zuschauer, hostmodus):
|
||||
def test_alle_sehen_clips_aendern_nur_besitzer_und_host(client, client2, zuschauer, hostmodus):
|
||||
m = marke(client)
|
||||
assert [c for c in client2.get("/api/clips").json() if c["id"] == m["id"]] == []
|
||||
fremd = [c for c in client2.get("/api/clips").json() if c["id"] == m["id"]]
|
||||
assert len(fremd) == 1 and fremd[0]["mine"] is False
|
||||
assert client2.patch(f"/api/clips/{m['id']}", json={"titel": "x"}).status_code == 404
|
||||
assert client2.get(f"/api/clips/{m['id']}/video").status_code == 404
|
||||
assert client2.delete(f"/api/clips/{m['id']}").status_code == 404
|
||||
hostmodus(zuschauer)
|
||||
assert zuschauer.patch(f"/api/clips/{m['id']}", json={"titel": "Vom Host"}).json()["titel"] == "Vom Host"
|
||||
assert zuschauer.get("/api/clips").json()[0]["id"] == m["id"]
|
||||
|
||||
Reference in New Issue
Block a user