You are here

function taxonomy_access_fix_form_taxonomy_overview_terms_alter in Taxonomy access fix 8

Same name and namespace in other branches
  1. 8.3 taxonomy_access_fix.module \taxonomy_access_fix_form_taxonomy_overview_terms_alter()
  2. 8.2 taxonomy_access_fix.module \taxonomy_access_fix_form_taxonomy_overview_terms_alter()
  3. 7.2 taxonomy_access_fix.module \taxonomy_access_fix_form_taxonomy_overview_terms_alter()
  4. 7 taxonomy_access_fix.module \taxonomy_access_fix_form_taxonomy_overview_terms_alter()

Implements hook_form_FORM_ID_alter() for taxonomy_overview_terms().

See also

taxonomy_overview_terms()

File

./taxonomy_access_fix.module, line 23

Code

function taxonomy_access_fix_form_taxonomy_overview_terms_alter(&$form, &$form_state) {

  // Admin: don't fix anything.
  if (Drupal::currentUser()
    ->hasPermission('administer taxonomy')) {
    return;
  }
  $vocabulary = $form_state
    ->get([
    'taxonomy',
    'vocabulary',
  ]);
  $can_edit = taxonomy_access_fix_access('edit terms', $vocabulary);
  $can_delete = taxonomy_access_fix_access('delete terms', $vocabulary);
  $can_reorder = taxonomy_access_fix_access('reorder terms', $vocabulary);

  // Remove edit/delete links.
  foreach (Element::children($form['terms']) as $name) {
    if (!$can_edit) {
      unset($form['terms'][$name]['operations']['#links']['edit']);
    }
    if (!$can_delete) {
      unset($form['terms'][$name]['operations']['#links']['delete']);
    }
    if (!$can_reorder) {
      unset($form['terms'][$name]['weight']);
    }
  }
  if (!$can_reorder) {

    // Hide Save and Reset buttons.
    $form['actions']['#access'] = FALSE;

    // Remove tableDrag.
    unset($form['terms']['#tabledrag']);

    // Remove Weight column.
    unset($form['terms']['#header'][1]);
  }
}