diff --git a/frappe/__init__.py b/frappe/__init__.py index 2f49cab5a6..914b887f2a 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -915,7 +915,8 @@ def has_permission( parent_doctype=None, ): """ - Raises `frappe.PermissionError` if not permitted. + Returns True if the user has permission `ptype` for given `doctype` or `doc` + Raises `frappe.PermissionError` if user isn't permitted and `throw` is truthy :param doctype: DocType for which permission is to be check. :param ptype: Permission type (`read`, `write`, `create`, `submit`, `cancel`, `amend`). Default: `read`. diff --git a/frappe/model/document.py b/frappe/model/document.py index e4d927feec..f5d76b6484 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -195,16 +195,17 @@ class Document(BaseDocument): def has_permission(self, permtype="read", verbose=False) -> bool: """ - Call `frappe.has_permission` if `self.flags.ignore_permissions` is not set. + Call `frappe.permissions.has_permission` if `ignore_permissions` flag isn't truthy - :param permtype: one of `read`, `write`, `submit`, `cancel`, `delete` + :param permtype: `read`, `write`, `submit`, `cancel`, `delete`, etc. :param verbose: DEPRECATED, will be removed in a future release. """ - import frappe.permissions if self.flags.ignore_permissions: return True + import frappe.permissions + return frappe.permissions.has_permission(self.doctype, permtype, self) def raise_no_permission_to(self, perm_type):