? permissions.patch
? permissions_api.css
Index: permissions_api.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/permissions_api/permissions_api.info,v
retrieving revision 1.3
diff -u -p -r1.3 permissions_api.info
--- permissions_api.info	3 Nov 2008 02:53:05 -0000	1.3
+++ permissions_api.info	26 Jun 2009 14:57:41 -0000
@@ -1,3 +1,4 @@
 ; $Id: permissions_api.info,v 1.3 2008/11/03 02:53:05 ebeyrent Exp $
 name = "Permissions API"
 description = "This module defines helper functions for granting and revoking permissions for roles"
+core = 6.x
Index: permissions_api.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/permissions_api/permissions_api.module,v
retrieving revision 1.10
diff -u -p -r1.10 permissions_api.module
--- permissions_api.module	16 Jun 2009 12:13:41 -0000	1.10
+++ permissions_api.module	26 Jun 2009 14:57:41 -0000
@@ -227,3 +227,66 @@ function permissions_role_inherit($new_r
     permissions_grant_permissions($clone->name, $role_permissions);
   }
 }
+
+function permissions_api_form_alter(&$form, $form_state, $form_id) {
+  if ($form_id == 'user_admin_perm') {
+    $form['#prefix'] = drupal_get_form('permissions_api_settings_form');
+  }
+}
+
+function permissions_api_settings_form() {
+  drupal_add_css(drupal_get_path('module', 'permissions_api') .'/permissions_api.css');
+    
+  $roles = drupal_map_assoc(array_values(user_roles()));
+  $module_options = array();
+  foreach (module_list(FALSE, FALSE, TRUE) as $module) {
+    if (module_invoke($module, 'perm')) {
+      $module_options[$module] = $module;
+    }
+  }
+  $form['reset'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Reset Permissions'),
+    '#description' => t('Reset the permissions below in one step. Choose modules and roles and grant or revoke all permissions for those modules and roles.'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#attributes' => array('class' => 'permissions-api'),
+    );
+  $form['reset']['modules'] = array(
+    '#type' => 'select',
+    '#title' => t('Modules'),
+    '#options' => $module_options,
+    '#multiple' => TRUE,
+    );  
+  $form['reset']['grant'] = array(
+    '#type' => 'select',
+    '#title' => t('Grant all'),
+    '#options' => $roles,
+    '#multiple' => TRUE,
+    );
+  $form['reset']['revoke'] = array(
+    '#type' => 'select',
+    '#title' => t('Revoke all'),
+    '#options' => $roles,
+    '#multiple' => TRUE,
+    );    
+  $form['reset']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit'),
+    );
+  return $form;
+}
+
+function permissions_api_settings_form_submit($form, &$form_state) {
+  $modules = $form_state['values']['modules'];
+  foreach ($modules as $module) {
+    $grant = $form_state['values']['grant'];
+    foreach ($grant as $role) {
+      permissions_grant_all_permissions_by_module($role, $module);
+    }
+    $revoke = $form_state['values']['revoke'];
+    foreach ($revoke as $role) {
+      permissions_revoke_all_permissions_by_module($role, $module);
+    }
+  }  
+}
\ No newline at end of file
