public static function SimpleAccessGroups::processSimpleAccessGroups in Simple Access 8.3
Build the simple_aqccess_groups element.
File
- src/
Element/ SimpleAccessGroups.php, line 45
Class
- SimpleAccessGroups
- Simple access groups element.
Namespace
Drupal\simple_access\ElementCode
public static function processSimpleAccessGroups(&$element, FormStateInterface $form_state, &$complete_form) {
$groups = SimpleAccessGroup::loadMultiple();
uasort($groups, [
SimpleAccessGroup::class,
'sort',
]);
$config = \Drupal::config('simple_access.settings');
$element['#default_value'] = is_array($element['#default_value']) ? $element['#default_value'] : [];
$element['wrapper'] = isset($element['wrapper']) ? $element['wrapper'] : [];
$element['wrapper'] += [
'#type' => 'table',
];
$element['wrapper']['#header'] = [
t('Groups'),
];
foreach (array_filter($config
->get('display')) as $item) {
$element['wrapper']['#header'][] = Unicode::ucfirst($item);
}
/** @var \Drupal\simple_access\Entity\SimpleAccessGroup $group */
foreach ($groups as $group) {
$element['wrapper'][$group
->id()] = isset($element['wrapper'][$group
->id()]) ? $element['wrapper'][$group
->id()] : [];
$element['wrapper'][$group
->id()] += [
'#parents' => array_merge($element['#parents'], [
$group
->id(),
]),
];
$privilege = $element['#override_privilege'] || $group
->canManageAccess($element['#node_type']);
$element['#default_value'][$group
->id()] = is_array($element['#default_value'][$group
->id()]) ? $element['#default_value'][$group
->id()] : [];
$element['#default_value'][$group
->id()] += [
'view' => 0,
'update' => 0,
'delete' => 0,
];
$element['wrapper'][$group
->id()]['#access'] = $privilege;
$element['wrapper'][$group
->id()]['name'] = [
'#markup' => $group
->label(),
'#access' => $privilege,
];
$element['wrapper'][$group
->id()]['view'] = [
'#type' => 'checkbox',
'#default_value' => $element['#default_value'][$group
->id()]['view'],
'#access' => $privilege && $config
->get('display.view'),
];
$element['wrapper'][$group
->id()]['update'] = [
'#type' => 'checkbox',
'#default_value' => $element['#default_value'][$group
->id()]['update'],
'#access' => $privilege && $config
->get('display.update'),
];
$element['wrapper'][$group
->id()]['delete'] = [
'#type' => 'checkbox',
'#default_value' => $element['#default_value'][$group
->id()]['delete'],
'#access' => $privilege && $config
->get('display.delete'),
];
}
return $element;
}