Version: current

# Class PermissionCheckboxSetField

Shows a categorized list of available permissions (through `Permission::get_codes()`). Permissions which are assigned to a given `Group` record (either directly, inherited from parent groups, or through a `PermissionRole`) will be checked automatically. All checkboxes for "inherited" permissions will be readonly.

The field can gets its assignment data either from `Group` or `PermissionRole` records.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  FormField
  PermissionCheckboxSetField

### Direct known subclasses

`PermissionCheckboxSetField_Readonly`

Package: sapphire\security
Located at sapphire/security/PermissionCheckboxSetField.php

## Methods summary

`public` | # `__construct( String $name, String $title, String $managedClass, String $filterField, `Group`|`DataObjectSet` $records = null )` #### Parameters $name String $name $title String $title $managedClass String $managedClass $filterField String $filterField $records Group|DataObjectSet $records One or more `Group` or `PermissionRole` records used to determine permission checkboxes. Caution: saveInto() can only be used with a single record, all inherited permissions will be marked readonly. Setting multiple groups only makes sense in a readonly context. (Optional) #### Overrides `FormField::__construct`
`public` | # `setHiddenPermissions( Array $codes )` #### Parameters $codes Array $codes
`public Array` | # `getHiddenPermissions( )` #### Returns `Array` Array
`public` | # `Field( )` Returns the form field - used by templates. Although FieldHolder is generally what is inserted into templates, all of the field holder templates make use of $Field. It's expected that FieldHolder will give you the "complete" representation of the field on the form, whereas Field will give you the core editing widget, such as an input tag. Returns the form field - used by templates. Although FieldHolder is generally what is inserted into templates, all of the field holder templates make use of $Field. It's expected that FieldHolder will give you the "complete" representation of the field on the form, whereas Field will give you the core editing widget, such as an input tag. Our base FormField class just returns a span containing the value. This should be overridden! #### Overrides `FormField::Field`
`public` | # `saveInto( `DataObject` $record )` Update the permission set associated with $record DataObject Update the permission set associated with $record DataObject #### Parameters $record DataObject $record #### Overrides `FormField::saveInto`
`public `PermissionCheckboxSetField_Readonly`` | # `performReadonlyTransformation( )` #### Returns ``PermissionCheckboxSetField_Readonly`` PermissionCheckboxSetField_Readonly #### Overrides `FormField::performReadonlyTransformation`
`public array` | # `getAssignedPermissionCodes( )` Retrieves all permission codes for the currently set records Retrieves all permission codes for the currently set records #### Returns `array` array

### Methods inherited from FormField

`FieldHolder()`, `LeftTitle()`, `Link()`, `Message()`, `MessageType()`, `Name()`, `Required()`, `RightTitle()`, `SmallFieldHolder()`, `Title()`, `Type()`, `Value()`, `addExtraAttribute()`, `addExtraClass()`, `allowHTML5()`, `allow_html5()`, `attrName()`, `attrTitle()`, `attrValue()`, `createTag()`, `dataValue()`, `debug()`, `describe()`, `extraClass()`, `fieldHolderTemplates()`, `fieldTemplates()`, `forTemplate()`, `getCustomValidationMessage()`, `getExtraClasses()`, `getForm()`, `getHTML5Attribute()`, `getTabIndex()`, `getTabIndexHTML()`, `hasClass()`, `hasData()`, `id()`, `isComposite()`, `isDisabled()`, `isReadonly()`, `jsValidation()`, `name_to_label()`, `performDisabledTransformation()`, `removeExtraAttribute()`, `removeExtraClass()`, `rootFieldSet()`, `securityTokenEnabled()`, `setAutocomplete()`, `setContainerFieldSet()`, `setCustomValidationMessage()`, `setDisabled()`, `setError()`, `setFieldHolderTemplate()`, `setForm()`, `setHTML5Attribute()`, `setLeftTitle()`, `setName()`, `setReadonly()`, `setRightTitle()`, `setSmallFieldHolderTemplate()`, `setTabIndex()`, `setTemplate()`, `setTitle()`, `setValue()`, `smallFieldHolderTemplates()`, `transform()`, `useHTML5()`, `use_html5()`, `validate()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`protected Array` | $hiddenPermissions | # Filter certain permission codes from the output. Useful to simplify the interface Filter certain permission codes from the output. Useful to simplify the interface
`protected `DataObjectSet`` | $records | #
`protected array` | $source | # Array Nested array in same notation as `CheckboxSetField`. Array Nested array in same notation as `CheckboxSetField`.

### Properties inherited from FormField

`$autocomplete`, `$containerFieldSet`, `$customValidationMessage`, `$description`, `$disabled`, `$dontEscape`, `$extraAttributes`, `$extraClass`, `$extraClasses`, `$fieldHTML5`, `$fieldHolderTemplate`, `$form`, `$html5Attributes`, `$leftTitle`, `$message`, `$messageType`, `$name`, `$possible_autocomplete_values`, `$readonly`, `$rightTitle`, `$smallFieldHolderTemplate`, `$tabIndex`, `$template`, `$title`, `$use_html5`, `$value`

### Properties inherited from RequestHandler

`$allowed_actions`, `$brokenOnConstruct`, `$request`, `$url_handlers`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -