feat: Ignore permlevel for specific fields
This commit is contained in:
parent
022bbe9889
commit
b4476e0257
2 changed files with 16 additions and 1 deletions
|
|
@ -130,6 +130,17 @@ class TestUser(unittest.TestCase):
|
|||
# system manager is not added (it is reset)
|
||||
self.assertFalse("System Manager" in [d.role for d in me.roles])
|
||||
|
||||
# ignore permlevel using flags
|
||||
me.flags.ignore_permlevel_for_fields = ["roles"]
|
||||
me.add_roles("System Manager")
|
||||
|
||||
# system manager now added due to flags
|
||||
self.assertTrue("System Manager" in [d.role for d in me.get("roles")])
|
||||
|
||||
# reset flags
|
||||
me.flags.ignore_permlevel_for_fields = None
|
||||
|
||||
# change user
|
||||
frappe.set_user("Administrator")
|
||||
|
||||
me = frappe.get_doc("User", "testperm@example.com")
|
||||
|
|
|
|||
|
|
@ -1096,7 +1096,11 @@ class BaseDocument(object):
|
|||
to_reset = []
|
||||
|
||||
for df in high_permlevel_fields:
|
||||
if df.permlevel not in has_access_to and df.fieldtype not in display_fieldtypes:
|
||||
if (
|
||||
df.permlevel not in has_access_to
|
||||
and df.fieldtype not in display_fieldtypes
|
||||
and df.fieldname not in self.flags.get("ignore_permlevel_for_fields", [])
|
||||
):
|
||||
to_reset.append(df)
|
||||
|
||||
if to_reset:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue