chore: remove extra parameter form_doctype from search_link

This commit is contained in:
Sagar Vora 2025-12-04 10:51:07 +05:30
parent 4f5197ec3d
commit 8b8c2c800e
3 changed files with 11 additions and 18 deletions

View file

@ -44,7 +44,6 @@ def search_link(
reference_doctype: str | None = None,
ignore_user_permissions: bool = False,
*,
form_doctype: str | None = None,
link_fieldname: str | None = None,
) -> list[LinkSearchResults]:
results = search_widget(
@ -56,7 +55,6 @@ def search_link(
filters=filters,
reference_doctype=reference_doctype,
ignore_user_permissions=ignore_user_permissions,
form_doctype=form_doctype,
link_fieldname=link_fieldname,
)
return build_for_autosuggest(results, doctype=doctype)
@ -77,18 +75,15 @@ def search_widget(
reference_doctype: str | None = None,
ignore_user_permissions: bool = False,
*,
form_doctype: str | None = None,
link_fieldname: str | None = None,
):
if ignore_user_permissions:
if form_doctype and link_fieldname:
validate_ignore_user_permissions(form_doctype, link_fieldname, doctype)
if reference_doctype and link_fieldname:
validate_ignore_user_permissions(reference_doctype, link_fieldname, doctype)
else:
frappe.logger().error(
"setting ignore_user_permissions=True in search_link requires "
"form_doctype and link_fieldname to be set. "
f"Got form_doctype={form_doctype}, link_fieldname={link_fieldname}. "
"Ignoring flag."
"setting ignore_user_permissions=True requires reference_doctype and link_fieldname to be set. "
f"Got reference_doctype={reference_doctype}, link_fieldname={link_fieldname}. Ignoring flag."
)
ignore_user_permissions = False
@ -122,7 +117,6 @@ def search_widget(
as_dict=as_dict,
reference_doctype=reference_doctype,
ignore_user_permissions=ignore_user_permissions,
form_doctype=form_doctype,
link_fieldname=link_fieldname,
)
except (frappe.PermissionError, frappe.AppNotInstalledError, ImportError):

View file

@ -359,7 +359,6 @@ frappe.ui.form.ControlLink = class ControlLink extends frappe.ui.form.ControlDat
ignore_user_permissions: this.df.ignore_user_permissions,
reference_doctype: this.get_reference_doctype() || "",
page_length: cint(frappe.boot.sysdefaults?.link_field_results_limit) || 10,
form_doctype: this.doctype,
link_fieldname: this.df.fieldname,
};

View file

@ -261,25 +261,25 @@ class TestSearch(IntegrationTestCase):
self.assertIn(allowed_doc.name, result_values)
self.assertNotIn(restricted_doc.name, result_values)
# With ignore_user_permissions + form_doctype + link_fieldname, both should be returned
# With ignore_user_permissions + reference_doctype + link_fieldname, both should be returned
results_with_ignore = search_link(
doctype="Test Search Linked",
txt="Document",
ignore_user_permissions=True,
form_doctype="Test Search Form",
reference_doctype="Test Search Form",
link_fieldname="linked_doc",
)
result_values = [r["value"] for r in results_with_ignore]
self.assertIn(allowed_doc.name, result_values)
self.assertIn(restricted_doc.name, result_values)
# With ignore_user_permissions=True but WITHOUT form_doctype/link_fieldname,
# With ignore_user_permissions=True but WITHOUT reference_doctype/link_fieldname,
# the flag should be silently ignored and user permissions should apply
results_without_context = search_link(
doctype="Test Search Linked",
txt="Document",
ignore_user_permissions=True,
# form_doctype and link_fieldname not provided
# reference_doctype and link_fieldname not provided
)
result_values = [r["value"] for r in results_without_context]
self.assertIn(allowed_doc.name, result_values)
@ -334,7 +334,7 @@ class TestSearch(IntegrationTestCase):
doctype="Test Search Linked2",
txt="test",
ignore_user_permissions=True,
form_doctype="Test Search Form No Ignore",
reference_doctype="Test Search Form No Ignore",
link_fieldname="linked_doc",
)
@ -345,7 +345,7 @@ class TestSearch(IntegrationTestCase):
doctype="Test Search Linked2",
txt="test",
ignore_user_permissions=True,
form_doctype="Test Search Form No Ignore",
reference_doctype="Test Search Form No Ignore",
link_fieldname="nonexistent_field",
)
@ -370,7 +370,7 @@ class TestSearch(IntegrationTestCase):
doctype="Test Search Linked2",
txt="test",
ignore_user_permissions=True,
form_doctype="Test Search Form Wrong Link",
reference_doctype="Test Search Form Wrong Link",
link_fieldname="wrong_link",
)