Merge pull request #12078 from scmmishra/permission-alert-flag
This commit is contained in:
commit
53eda718b6
2 changed files with 18 additions and 5 deletions
|
|
@ -1017,10 +1017,10 @@ def validate_fields(meta):
|
|||
check_sort_field(meta)
|
||||
check_image_field(meta)
|
||||
|
||||
def validate_permissions_for_doctype(doctype, for_remove=False):
|
||||
def validate_permissions_for_doctype(doctype, for_remove=False, alert=False):
|
||||
"""Validates if permissions are set correctly."""
|
||||
doctype = frappe.get_doc("DocType", doctype)
|
||||
validate_permissions(doctype, for_remove)
|
||||
validate_permissions(doctype, for_remove, alert=alert)
|
||||
|
||||
# save permissions
|
||||
for perm in doctype.get("permissions"):
|
||||
|
|
@ -1043,9 +1043,10 @@ def clear_permissions_cache(doctype):
|
|||
""", doctype):
|
||||
frappe.clear_cache(user=user)
|
||||
|
||||
def validate_permissions(doctype, for_remove=False):
|
||||
def validate_permissions(doctype, for_remove=False, alert=False):
|
||||
permissions = doctype.get("permissions")
|
||||
if not permissions:
|
||||
# Some DocTypes may not have permissions by default, don't show alert for them
|
||||
if not permissions and alert:
|
||||
frappe.msgprint(_('No Permissions Specified'), alert=True, indicator='orange')
|
||||
issingle = issubmittable = isimportable = False
|
||||
if doctype:
|
||||
|
|
|
|||
|
|
@ -77,6 +77,18 @@ def add(parent, role, permlevel):
|
|||
|
||||
@frappe.whitelist()
|
||||
def update(doctype, role, permlevel, ptype, value=None):
|
||||
"""Update role permission params
|
||||
|
||||
Args:
|
||||
doctype (str): Name of the DocType to update params for
|
||||
role (str): Role to be updated for, eg "Website Manager".
|
||||
permlevel (int): perm level the provided rule applies to
|
||||
ptype (str): permission type, example "read", "delete", etc.
|
||||
value (None, optional): value for ptype, None indicates False
|
||||
|
||||
Returns:
|
||||
str: Refresh flag is permission is updated successfully
|
||||
"""
|
||||
frappe.only_for("System Manager")
|
||||
out = update_permission_property(doctype, role, permlevel, ptype, value)
|
||||
return 'refresh' if out else None
|
||||
|
|
@ -92,7 +104,7 @@ def remove(doctype, role, permlevel):
|
|||
if not frappe.get_all('Custom DocPerm', dict(parent=doctype)):
|
||||
frappe.throw(_('There must be atleast one permission rule.'), title=_('Cannot Remove'))
|
||||
|
||||
validate_permissions_for_doctype(doctype, for_remove=True)
|
||||
validate_permissions_for_doctype(doctype, for_remove=True, alert=True)
|
||||
|
||||
@frappe.whitelist()
|
||||
def reset(doctype):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue