| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |