feat: filter public media by role

This commit is contained in:
ik
2026-09-21 19:45:16 +07:00
parent b4585cee7e
commit b7d69619fa
5 changed files with 21 additions and 6 deletions
+3 -1
View File
@@ -23,7 +23,7 @@ def _public_role_allowed(entity_type: str | None, role: object) -> bool:
return False
def published_assets(entity_type: str | None = None) -> list[dict]:
def published_assets(entity_type: str | None = None, media_role: str | None = None) -> list[dict]:
manifest = json.loads((MEDIA_ROOT / "manifest.json").read_text(encoding="utf-8"))
result = []
for item in manifest.get("assets", []):
@@ -31,6 +31,8 @@ def published_assets(entity_type: str | None = None) -> list[dict]:
continue
if entity_type and item.get("entity_type") != entity_type:
continue
if media_role and item.get("media_role") != media_role:
continue
if not _public_role_allowed(item.get("entity_type"), item.get("media_role")):
continue
source_page = str(item.get("source_page") or "")