fix: only check parent doctype for child doctypes
This commit is contained in:
parent
edd4171206
commit
063f2bbc79
2 changed files with 22 additions and 1 deletions
|
|
@ -406,7 +406,9 @@ def validate_link(doctype: str, docname: str, fields=None):
|
|||
frappe.throw(_("Document Name must be a string"))
|
||||
|
||||
if doctype != "DocType":
|
||||
parent_doctype = frappe.db.get_value(doctype, docname, "parenttype") # needed for links to child rows
|
||||
parent_doctype = None
|
||||
if frappe.get_meta(doctype).istable: # needed for links to child rows
|
||||
parent_doctype = frappe.db.get_value(doctype, docname, "parenttype")
|
||||
if not (
|
||||
frappe.has_permission(doctype, "select", parent_doctype=parent_doctype)
|
||||
or frappe.has_permission(doctype, "read", parent_doctype=parent_doctype)
|
||||
|
|
|
|||
|
|
@ -155,6 +155,25 @@ class TestClient(IntegrationTestCase):
|
|||
self.assertEqual(get("ToDo", filters={}), get("ToDo", filters="{}"))
|
||||
todo.delete()
|
||||
|
||||
def test_client_validatate_link(self):
|
||||
from frappe.client import validate_link
|
||||
|
||||
# Basic test
|
||||
self.assertTrue(validate_link("User", "Guest"))
|
||||
|
||||
# fixes capitalization
|
||||
if frappe.db.db_type == "mariadb":
|
||||
self.assertEqual(validate_link("User", "GueSt"), {"name": "Guest"})
|
||||
|
||||
# Fetch
|
||||
self.assertEqual(validate_link("User", "Guest", fields=["enabled"]), {"name": "Guest", "enabled": 1})
|
||||
|
||||
# Permissions
|
||||
with self.set_user("Guest"), self.assertRaises(frappe.PermissionError):
|
||||
self.assertEqual(
|
||||
validate_link("User", "Guest", fields=["enabled"]), {"name": "Guest", "enabled": 1}
|
||||
)
|
||||
|
||||
def test_client_insert(self):
|
||||
from frappe.client import insert
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue