예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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