feat(podcast): også gruppen Gramps må lytte
CD / deploy (push) Successful in 16s
CI / check (push) Successful in 22s

Slægten uden for den nære familie inviteres i gruppen Gramps, der kun giver
Gramps, podcasten og portalen. PODCAST_GROUP er nu kommasepareret
(standard "Familie,Gramps"). Podcast-kortet på forsiden vises også, selvom
brugeren ingen andre apps har.

Invitationssiden forklarer de kendte grupper med en linje, så det er tydeligt
hvad Familie, Gramps og Crawlkit-team giver.

Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG
This commit is contained in:
agw
2026-10-04 22:29:19 +02:00
parent 94e5a0ca01
commit 70bc700a11
4 changed files with 25 additions and 19 deletions
+3 -3
View File
@@ -71,14 +71,14 @@ def require_admin(request: Request):
def require_familie(request: Request):
"""Logget ind og i PODCAST_GROUP (eller admin). Uden login: login og tilbage hertil."""
"""Logget ind og i en af PODCAST_GROUPS (eller admin). Uden login: login og tilbage hertil."""
user = current_user(request)
if not user and request.method == "GET":
nxt = request.url.path + (f"?{request.url.query}" if request.url.query else "")
raise HTTPException(303, headers={"Location": "/auth/login?next=" + urllib.parse.quote(nxt, safe="")})
if not user:
raise HTTPException(401, "Log ind først")
if not (is_admin(user) or config.PODCAST_GROUP in (user.get("groups") or [])):
if not (is_admin(user) or config.PODCAST_GROUPS & set(user.get("groups") or [])):
raise HTTPException(403, "Kun for familien")
return user
@@ -153,7 +153,7 @@ async def dashboard_content(request: Request):
def _podcast_kort(user) -> list[dict]:
"""Kort til forsiden: én pr. podcast med udgivne episoder (admins ser også kladder)."""
if not (is_admin(user) or config.PODCAST_GROUP in (user.get("groups") or [])):
if not (is_admin(user) or config.PODCAST_GROUPS & set(user.get("groups") or [])):
return []
ud = []
for name in podcast.shows():