diff --git a/frappe/desk/search.py b/frappe/desk/search.py index f928aadf7c..dc23bf5778 100644 --- a/frappe/desk/search.py +++ b/frappe/desk/search.py @@ -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): diff --git a/frappe/public/js/frappe/form/controls/link.js b/frappe/public/js/frappe/form/controls/link.js index abb5e6ae21..b04a535b1e 100644 --- a/frappe/public/js/frappe/form/controls/link.js +++ b/frappe/public/js/frappe/form/controls/link.js @@ -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, }; diff --git a/frappe/tests/test_search.py b/frappe/tests/test_search.py index 6689fc400d..ad42bc3abb 100644 --- a/frappe/tests/test_search.py +++ b/frappe/tests/test_search.py @@ -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", )