From 4acddacf2d53d96712c78bb987df7d409a588e2d Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Sun, 4 Dec 2022 02:42:31 +0530 Subject: [PATCH] chore(Document): simplify `get_permlevel_access` --- frappe/model/document.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/frappe/model/document.py b/frappe/model/document.py index b81aa79cde..e6f90b2260 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -708,17 +708,16 @@ class Document(BaseDocument): d.reset_values_if_no_permlevel_access(has_access_to, high_permlevel_fields) def get_permlevel_access(self, permission_type="write"): - if not hasattr(self, "_has_access_to"): - self._has_access_to = {} - - self._has_access_to[permission_type] = [] + allowed_permlevels = [] roles = frappe.get_roles() - for perm in self.get_permissions(): - if perm.role in roles and perm.get(permission_type): - if perm.permlevel not in self._has_access_to[permission_type]: - self._has_access_to[permission_type].append(perm.permlevel) - return self._has_access_to[permission_type] + for perm in self.get_permissions(): + if ( + perm.role in roles and perm.get(permission_type) and perm.permlevel not in allowed_permlevels + ): + allowed_permlevels.append(perm.permlevel) + + return allowed_permlevels def has_permlevel_access_to(self, fieldname, df=None, permission_type="read"): if not df: