[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/adminrole/ -> adminrole.module (source)

   1  <?php
   2  // $Id: adminrole.module,v 1.2.2.8.2.11 2010/08/14 17:59:20 davereid Exp $
   3  
   4  /**
   5   * @file
   6   * This module simply gives a designated role all permissions every time the
   7   * modules page is submitted.
   8   */
   9  
  10  /**
  11   * Implements hook_form_FORM_ID_alter().
  12   */
  13  function adminrole_form_user_admin_settings_alter(&$form, $form_state) {
  14    // Administrative role option.
  15    $form['admin_role'] = array(
  16      '#type' => 'fieldset',
  17      '#title' => t('Administrator role'),
  18    );
  19  
  20    // Do not allow users to set the anonymous or authenticated user roles as the
  21    // administrator role.
  22    $roles = user_roles();
  23    unset($roles[DRUPAL_ANONYMOUS_RID]);
  24    unset($roles[DRUPAL_AUTHENTICATED_RID]);
  25  
  26    $form['admin_role']['user_admin_role'] = array(
  27      '#type' => 'select',
  28      '#title' => t('Administrator role'),
  29      '#default_value' => variable_get('user_admin_role', 0),
  30      '#options' => array(0 => t('Disabled')) + $roles,
  31      '#description' => t('This role will be automatically assigned new permissions whenever a module is enabled.'),
  32    );
  33  
  34    // Ensure the save/reset buttons have a lower weight than our fieldset.
  35    $form['buttons'] += array('#weight' => 100);
  36  }
  37  
  38  /**
  39   * Implements hook_form_alter().
  40   */
  41  function adminrole_form_alter(&$form, $form_state, $form_id) {
  42    if (in_array($form_id, array('system_modules', 'user_admin_settings'))) {
  43      $form['#submit'][] = 'adminrole_update_permissions';
  44    }
  45  }
  46  
  47  /**
  48   * Implements hook_content_fieldapi().
  49   *
  50   * Respond to fields being
  51   */
  52  function adminrole_content_fieldapi($op, $field) {
  53    switch ($op) {
  54      case 'create instance':
  55      case 'update instance':
  56      case 'delete instance':
  57        adminrole_update_permissions();
  58    }
  59  }
  60  
  61  /**
  62   * Implements hook_node_type().
  63   */
  64  function adminrole_node_type($op, $node_type) {
  65    adminrole_update_permissions();
  66  }
  67  
  68  /**
  69   * Implements hook_menu_alter().
  70   */
  71  function adminrole_menu_alter(&$items) {
  72    //adminrole_update_permissions();
  73  }
  74  
  75  /**
  76   * Update the admin role with all current available permissions.
  77   */
  78  function adminrole_update_permissions() {
  79    if ($rid = variable_get('user_admin_role', 0)) {
  80      $permissions = module_invoke_all('perm');
  81      if ($excluded = variable_get('adminrole_exclude_permissions', array())) {
  82        $permissions = array_diff($permissions, $excluded);
  83      }
  84      db_query('DELETE FROM {permission} WHERE rid = %d', $rid);
  85      if ($permissions) {
  86        db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", $rid, implode(', ', $permissions));
  87      }
  88    }
  89  }


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7