def remove(user, name, defkey, defvalue): if not can_set_user_permissions(defkey, defvalue): frappe.throw( _("Cannot remove permission for DocType: {0} and Name: {1}"). format(defkey, defvalue), frappe.PermissionError) remove_user_permission(defkey, defvalue, user, name)
def add(user, defkey, defvalue): if not can_set_user_permissions(defkey, defvalue): frappe.throw( _("Cannot set permission for DocType: {0} and Name: {1}").format( defkey, defvalue), frappe.PermissionError) add_user_permission(defkey, defvalue, user, with_message=True)
def get_permissions(parent=None, defkey=None, defvalue=None): if defkey and not can_set_user_permissions(defkey, defvalue): raise frappe.PermissionError conditions, values = _build_conditions(locals()) permissions = frappe.db.sql("""select name, parent, defkey, defvalue from tabDefaultValue where parent not in ('__default', '__global') and substr(defkey,1,1)!='_' and parenttype='User Permission' {conditions} order by parent, defkey""".format(conditions=conditions), values, as_dict=True) if not defkey: out = [] doctypes = get_doctypes_for_user_permissions() for p in permissions: if p.defkey in doctypes: out.append(p) permissions = out return permissions