Fix: correctly serve app logo specified in env (#13561)

This commit is contained in:
shamoon
2026-08-05 07:39:04 -07:00
committed by GitHub
parent 47727de116
commit a488ba6f90
2 changed files with 58 additions and 5 deletions
+16 -5
View File
@@ -5348,15 +5348,26 @@ def serve_logo(request: HttpRequest, filename: str | None = None) -> FileRespons
config = ApplicationConfiguration.objects.first()
app_logo = config.app_logo
if not app_logo:
raise Http404("No logo configured")
if app_logo:
path = Path(app_logo.path)
logo_name = app_logo.name
else:
if not settings.APP_LOGO:
raise Http404("No logo configured")
logo_root = (Path(settings.MEDIA_ROOT) / "logo").resolve()
path = (Path(settings.MEDIA_ROOT) / settings.APP_LOGO.lstrip("/")).resolve()
if not path.is_relative_to(logo_root) or not path.is_file():
raise Http404("Configured logo not found")
logo_name = path.name
path = app_logo.path
content_type = magic.from_file(path, mime=True) or "application/octet-stream"
logo_file = app_logo.open("rb") if app_logo else path.open("rb")
return FileResponse(
app_logo.open("rb"),
logo_file,
content_type=content_type,
filename=app_logo.name,
filename=logo_name,
as_attachment=True,
)