Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.11.2.20
diff -u -p -r1.11.2.20 admin_menu.inc
--- admin_menu.inc	28 Dec 2008 15:23:07 -0000	1.11.2.20
+++ admin_menu.inc	29 Jan 2009 23:43:31 -0000
@@ -363,6 +363,12 @@ function admin_menu_theme_settings() {
     '#default_value' => variable_get('admin_menu_tweak_modules', 0),
     '#description' => t('If enabled, fieldsets on the <a href="!modules-url">modules</a> page are automatically collapsed when loading the page.', array('!modules-url' => url('admin/build/modules'))),
   );
+  $form['tweaks']['admin_menu_tweak_permissions'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Collapse modules on Permissions page'),
+    '#default_value' => variable_get('admin_menu_tweak_permissions', 0),
+    '#description' => t('If enabled, modules on the <a href="!permissions-url">permissions</a> page are automatically collapsed when loading the page.', array('!permissions-url' => url('admin/user/permissions'))),
+  );
   if (module_exists('util')) {
     $form['tweaks']['admin_menu_tweak_modules']['#description'] .= '<br /><strong>'. t('If the Utility module was installed for this purpose, it can be safely disabled and uninstalled.') .'</strong>';
   }
Index: admin_menu.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.install,v
retrieving revision 1.4.2.6
diff -u -p -r1.4.2.6 admin_menu.install
--- admin_menu.install	28 Jan 2009 19:48:41 -0000	1.4.2.6
+++ admin_menu.install	29 Jan 2009 23:43:46 -0000
@@ -14,6 +14,7 @@ function admin_menu_uninstall() {
   variable_del('admin_menu_position_fixed');
   variable_del('admin_menu_rebuild_links');
   variable_del('admin_menu_tweak_modules');
+  variable_del('admin_menu_tweak_permissions');
   variable_del('admin_menu_tweak_tabs');
 }
 
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.7.2.7
diff -u -p -r1.7.2.7 admin_menu.js
--- admin_menu.js	24 Jan 2009 04:59:22 -0000	1.7.2.7
+++ admin_menu.js	29 Jan 2009 23:40:32 -0000
@@ -23,6 +23,25 @@ $(document).ready(function() {
     $('#system-modules fieldset:not(.collapsed), #system-modules-1 fieldset:not(.collapsed)').addClass('collapsed');
   }
 
+  // Collapse modules on Permissions page.
+  if (Drupal.settings.admin_menu && Drupal.settings.admin_menu.tweak_permissions) {
+    $('tr:has(td.permission)').addClass('permission').hide();
+    $('tr:has(td.module)').css('cursor', 'pointer').click(function () {
+      $.each($(this).nextAll(), function () {
+        // Toggle all permissions for this module.
+        if ($(this).is('.permission')) {
+          $(this).toggle();
+        }
+        // Break this loop if we hit the next module.
+        else {
+          return false;
+        }
+      });
+      // Update table header.
+      Drupal.tableHeaderDoScroll();
+    });
+  }
+
   // Hover emulation for IE 6.
   if ($.browser.msie && parseInt(jQuery.browser.version) == 6) {
     $('#admin-menu li').hover(function() {
Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.43.2.16
diff -u -p -r1.43.2.16 admin_menu.module
--- admin_menu.module	28 Dec 2008 15:23:07 -0000	1.43.2.16
+++ admin_menu.module	29 Jan 2009 23:44:20 -0000
@@ -100,6 +100,9 @@ function admin_menu_init() {
     if ($_GET['q'] == 'admin/build/modules') {
       drupal_add_js(array('admin_menu' => array('tweak_modules' => variable_get('admin_menu_tweak_modules', 0))), 'setting');
     }
+    if ($_GET['q'] == 'admin/user/permissions') {
+      drupal_add_js(array('admin_menu' => array('tweak_permissions' => variable_get('admin_menu_tweak_permissions', 0))), 'setting');
+    }
   }
 }
 
