fix: allow download via API, if at least one file copy is downloadable (#33560)

This commit is contained in:
Patrick Eißler 2025-08-06 18:41:59 +02:00 committed by GitHub
parent b136a39944
commit fb783dda08
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -11,6 +11,7 @@ import frappe
import frappe.sessions
import frappe.utils
from frappe import _, is_whitelisted, ping
from frappe.core.doctype.file.utils import find_file_by_url
from frappe.core.doctype.server_script.server_script_utils import get_server_script_map
from frappe.monitor import add_data_to_monitor
from frappe.permissions import check_doctype_permission
@ -230,8 +231,8 @@ def download_file(file_url: str):
Endpoints : download_file, frappe.core.doctype.file.file.download_file
URL Params : file_name = /path/to/file relative to site path
"""
file: File = frappe.get_doc("File", {"file_url": file_url})
if not file.is_downloadable():
file = find_file_by_url(file_url)
if not file:
raise frappe.PermissionError
frappe.local.response.filename = os.path.basename(file_url)