You are here

function taxonomy_access_fix_form_taxonomy_overview_terms_alter in Taxonomy access fix 7

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

Implements hook_form_FORM_ID_alter() for taxonomy_overview_terms().

File

./taxonomy_access_fix.module, line 53
This file contains all hooks and callbacks for extra/improved Taxonomy permissions.

Code

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

  // Admin: don't fix anything.
  if (user_access('administer taxonomy')) {
    return TRUE;
  }

  // Wrong part of the form (ie. reset): bail out.
  if (!isset($form['#vocabulary'])) {
    return;
  }
  $vocabulary = $form['#vocabulary'];
  $vid = $vocabulary->vid;
  $can_edit = user_access('edit terms in ' . $vid);
  $can_delete = user_access('delete terms in ' . $vid);

  // Hide edit links
  foreach (element_children($form) as $item) {
    $item =& $form[$item];

    // Term items are index like 'tid:14:0', so don't check that; check for #term.
    if (isset($item['#term'])) {
      if (!$can_edit) {
        $item['edit']['#access'] = FALSE;
      }
      if ($can_delete) {

        // Maybe someday...
      }
    }
    unset($item);
  }

  // Hide Save and Reset buttons
  if (!taxonomy_access_fix_access('reorder', $vocabulary)) {
    $form['actions']['submit']['#access'] = $form['actions']['reset_alphabetical']['#access'] = FALSE;
  }
}