{% requireEdition CraftClient %} {% includeTranslations "Select All", "Deselect All" %} {% includejsresource 'js/UserPermissions.js' %} {% includecssresource 'css/user-permissions.css' %} {% macro permissionList(context, permissions, id, disabled) %} {% from "_includes/forms" import checkbox %} {% for permissionName, props in permissions %} {% set isInGroupPermissions = (context.groupPermissions is defined and permissionName|lower in context.groupPermissions) %} {% if (isInGroupPermissions) %} {% set checked = true %} {% else %} {% if context.userOrGroup is not empty %} {% if context.userOrGroup.hasErrors %} {% set checked = permissionName in craft.request.getPost('permissions', []) %} {% elseif CraftEdition == CraftClient and not context.userOrGroup.id %} {% set checked = true %} {% else %} {% set checked = context.userOrGroup.can(permissionName) %} {% endif %} {% else %} {% set checked = false %} {% endif %} {% endif %} {% set hasNestedPermissions = props.nested is defined and props.nested is not empty %}
  • {{ checkbox({ label: props.label|e, name: 'permissions[]', value: permissionName, checked: checked, disabled: disabled or isInGroupPermissions, }) }} {% if hasNestedPermissions %} {{ _self.permissionList(context, props.nested, permissionName~'-nested', not checked) }} {% endif %}
  • {% endfor %} {% endmacro %} {% for category, catPermissions in craft.userPermissions.getAllPermissions() %}

    {{ category }}

    {{ _self.permissionList(_context, catPermissions) }}
    {% endfor %}