{% requireEdition CraftPro %} {% 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) %} {% set checked = (isInGroupPermissions ? true : (context.userOrGroup is not empty ? (context.userOrGroup.hasErrors ? (permissionName in craft.request.getPost('permissions', [])) : context.userOrGroup.can(permissionName)) : false)) %} {% 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 %}