adminrole.module in Admin role 6
Same filename and directory in other branches
This module simply gives a designated role all permissions every time the modules page is submitted.
File
adminrole.moduleView source
<?php
/**
 * @file
 * This module simply gives a designated role all permissions every time the
 * modules page is submitted.
 */
/**
 * Implements hook_form_FORM_ID_alter().
 */
function adminrole_form_user_admin_settings_alter(&$form, $form_state) {
  // Administrative role option.
  $form['admin_role'] = array(
    '#type' => 'fieldset',
    '#title' => t('Administrator role'),
  );
  // Do not allow users to set the anonymous or authenticated user roles as the
  // administrator role.
  $roles = user_roles();
  unset($roles[DRUPAL_ANONYMOUS_RID]);
  unset($roles[DRUPAL_AUTHENTICATED_RID]);
  $form['admin_role']['user_admin_role'] = array(
    '#type' => 'select',
    '#title' => t('Administrator role'),
    '#default_value' => variable_get('user_admin_role', 0),
    '#options' => array(
      0 => t('Disabled'),
    ) + $roles,
    '#description' => t('This role will be automatically assigned new permissions whenever a module is enabled.'),
  );
  // Ensure the save/reset buttons have a lower weight than our fieldset.
  $form['buttons'] += array(
    '#weight' => 100,
  );
}
/**
 * Implements hook_form_alter().
 */
function adminrole_form_alter(&$form, $form_state, $form_id) {
  if (in_array($form_id, array(
    'system_modules',
    'user_admin_settings',
  ))) {
    $form['#submit'][] = 'adminrole_update_permissions';
  }
}
/**
 * Implements hook_content_fieldapi().
 *
 * Respond to fields being
 */
function adminrole_content_fieldapi($op, $field) {
  switch ($op) {
    case 'create instance':
    case 'update instance':
    case 'delete instance':
      adminrole_update_permissions();
  }
}
/**
 * Implements hook_node_type().
 */
function adminrole_node_type($op, $node_type) {
  adminrole_update_permissions();
}
/**
 * Implements hook_menu_alter().
 */
function adminrole_menu_alter(&$items) {
  //adminrole_update_permissions();
}
/**
 * Update the admin role with all current available permissions.
 */
function adminrole_update_permissions() {
  if ($rid = variable_get('user_admin_role', 0)) {
    $permissions = module_invoke_all('perm');
    if ($excluded = variable_get('adminrole_exclude_permissions', array())) {
      $permissions = array_diff($permissions, $excluded);
    }
    db_query('DELETE FROM {permission} WHERE rid = %d', $rid);
    if ($permissions) {
      db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", $rid, implode(', ', $permissions));
    }
  }
}Functions
| 
            Name | 
                  Description | 
|---|---|
| adminrole_content_fieldapi | Implements hook_content_fieldapi(). | 
| adminrole_form_alter | Implements hook_form_alter(). | 
| adminrole_form_user_admin_settings_alter | Implements hook_form_FORM_ID_alter(). | 
| adminrole_menu_alter | Implements hook_menu_alter(). | 
| adminrole_node_type | Implements hook_node_type(). | 
| adminrole_update_permissions | Update the admin role with all current available permissions. |