function permissions_by_term_form_alter in Permissions by Term 8.2
Same name and namespace in other branches
- 8 permissions_by_term.module \permissions_by_term_form_alter()
- 7 permissions_by_term.module \permissions_by_term_form_alter()
Implements hook_form_alter().
File
- ./
permissions_by_term.module, line 323 - Allows access to terms in a vocabulary to be limited by user or role.
Code
function permissions_by_term_form_alter(&$form, FormStateInterface $formState, $form_id) {
$form['#validate'][] = 'permissions_by_term_validate';
if (isNodeEditForm()) {
$form['permissions_by_term_info'] = [
'#type' => 'details',
'#group' => 'advanced',
'#title' => t('Permissions by Term'),
'#access' => \Drupal::currentUser()
->hasPermission('show term permissions on node edit page'),
];
$langcode = \Drupal::languageManager()
->getCurrentLanguage()
->getId();
if (!empty($formState
->getUserInput()['langcode']['0']['value'])) {
$langcode = $formState
->getUserInput()['langcode']['0']['value'];
}
$nid = null;
if (!empty($node = \Drupal::routeMatch()
->getParameter('node')) && $node instanceof Node) {
$nid = $node
->id();
/**
* @var AccessCheck $accessCheck
*/
$accessCheck = \Drupal::service('permissions_by_term.access_check');
$accessResult = $accessCheck
->handleNode($node, $langcode);
if ($accessResult instanceof AccessResultForbidden) {
return $accessResult;
}
}
$viewFilePath = drupal_get_path('module', 'permissions_by_term') . '/src/View/node-details.html.twig';
/**
* @var \Drupal\permissions_by_term\Service\NodeEntityBundleInfo $nodeEntityBundleInfo
*/
$nodeEntityBundleInfo = \Drupal::service('permissions_by_term.node_entity_bundle_info');
$form['permissions_by_term_info']['revision'] = array(
'#type' => 'item',
'#markup' => $nodeEntityBundleInfo
->renderNodeDetails($viewFilePath, $langcode, $nid),
);
$form['#attached']['library'][] = 'permissions_by_term/nodeForm';
}
}