feat(podcast): også gruppen Gramps må lytte
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:
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user