From acb0dc38ae08189e55c86fbf05cdc6bf72a02251 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Tue, 24 Jan 2023 12:17:57 +0530 Subject: [PATCH] fix: Check if attr exists before checking permlevel --- frappe/model/document.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/model/document.py b/frappe/model/document.py index c970170a6c..8a99676b60 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -675,14 +675,15 @@ class Document(BaseDocument): has_access_to = self.get_permlevel_access("read") for df in self.meta.fields: - if df.permlevel and df.permlevel not in has_access_to: + if df.permlevel and hasattr(self, df.fieldname) and df.permlevel not in has_access_to: delattr(self, df.fieldname) for table_field in self.meta.get_table_fields(): for df in frappe.get_meta(table_field.options).fields or []: if df.permlevel and df.permlevel not in has_access_to: for child in self.get(table_field.fieldname) or []: - delattr(child, df.fieldname) + if hasattr(child, df.fieldname): + delattr(child, df.fieldname) def validate_higher_perm_levels(self): """If the user does not have permissions at permlevel > 0, then reset the values to original / default"""