fix: check at doc level when if owner role permission is checked during export from list view

(cherry picked from commit 1ed45ceb97868c9b517dd3066f0b4ea2cd5358f5)
This commit is contained in:
Sumit Bhanushali 2024-12-04 17:25:06 +05:30 committed by Mergify
parent 5d22ee7b2b
commit 1bb26f68d3

View file

@ -110,11 +110,21 @@ class Exporter:
return fields or []
def get_data_to_export(self):
frappe.permissions.can_export(self.doctype, raise_exception=True)
table_fields = [f for f in self.exportable_fields if f != self.doctype]
data = self.get_data_as_docs()
if not frappe.permissions.can_export(self.doctype):
if frappe.permissions.can_export(self.doctype, is_owner=True):
for doc in data:
if doc.get("owner") != frappe.session.user:
raise frappe.PermissionError(
_("You are not allowed to export {} doctype").format(self.doctype)
)
else:
raise frappe.PermissionError(
_("You are not allowed to export {} doctype").format(self.doctype)
)
for doc in data:
rows = []
rows = self.add_data_row(self.doctype, None, doc, rows, 0)
@ -163,7 +173,7 @@ class Exporter:
parent_data = frappe.db.get_list(
self.doctype,
filters=filters,
fields=["name", *parent_fields],
fields=["name", "owner", *parent_fields],
limit_page_length=self.export_page_length,
order_by=order_by,
as_list=0,