function permissions_by_term_options_list_alter in Permissions by Term 8.2
Same name and namespace in other branches
- 8 permissions_by_term.module \permissions_by_term_options_list_alter()
Implements hook_options_list_alter().
File
- ./
permissions_by_term.module, line 516 - Allows access to terms in a vocabulary to be limited by user or role.
Code
function permissions_by_term_options_list_alter(array &$options, array $context) {
$fieldDefinitionSettings = $context['fieldDefinition']
->getFieldStorageDefinition()
->getSettings();
if (!empty($fieldDefinitionSettings['target_type']) && $fieldDefinitionSettings['target_type'] == 'taxonomy_term') {
foreach ($options as $id => $names) {
if ($id !== '_none') {
/**
* @var AccessCheck $accessCheck
*/
$accessCheck = \Drupal::service('permissions_by_term.access_check');
if (is_array($names)) {
foreach ($names as $group_id => $name) {
if (!$accessCheck
->isAccessAllowedByDatabase($group_id)) {
unset($options[$id]);
}
}
}
elseif (is_string($names)) {
if (!$accessCheck
->isAccessAllowedByDatabase($id)) {
unset($options[$id]);
}
}
}
}
}
}