From 1eab4e425340fabc2c5c25d91c0bd05de67df667 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 30 Jan 2023 14:11:38 +0530 Subject: [PATCH] fix: Convert doctype name to string (#19832) --- frappe/core/doctype/docshare/test_docshare.py | 14 ++++++++++++++ frappe/permissions.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/docshare/test_docshare.py b/frappe/core/doctype/docshare/test_docshare.py index f2ed8a32af..b874042d15 100644 --- a/frappe/core/doctype/docshare/test_docshare.py +++ b/frappe/core/doctype/docshare/test_docshare.py @@ -125,3 +125,17 @@ class TestDocShare(FrappeTestCase): ) frappe.share.remove(doctype, submittable_doc.name, self.user) + + def test_share_int_pk(self): + test_doc = frappe.new_doc("Console Log") + + test_doc.insert() + frappe.share.add("Console Log", test_doc.name, self.user) + + frappe.set_user(self.user) + self.assertIn( + str(test_doc.name), [str(name) for name in frappe.get_list("Console Log", pluck="name")] + ) + + test_doc.reload() + self.assertTrue(test_doc.has_permission("read")) diff --git a/frappe/permissions.py b/frappe/permissions.py index ef33c03875..2bee75d50c 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -637,7 +637,7 @@ def get_linked_doctypes(dt: str) -> list: def get_doc_name(doc): if not doc: return None - return doc if isinstance(doc, str) else doc.name + return doc if isinstance(doc, str) else str(doc.name) def allow_everything():