? 695952-masquerade-d6.patch Index: masquerade.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/masquerade/masquerade.module,v retrieving revision 1.16.2.39 diff -u -p -r1.16.2.39 masquerade.module --- masquerade.module 23 Jun 2010 13:33:34 -0000 1.16.2.39 +++ masquerade.module 25 Jun 2010 14:34:51 -0000 @@ -69,7 +69,7 @@ function masquerade_menu() { 'title arguments' => array('@testuser' => $default_test_user->name), 'page callback' => 'masquerade_switch_user_page', 'page arguments' => array(2), - 'access callback' => 'masquerade_access', + 'access callback' => 'masquerade_access', 'access arguments' => array('switch'), 'type' => MENU_NORMAL_ITEM, ); @@ -124,7 +124,7 @@ function masquerade_menu() { } /** - * Implementation of hook_menu_link_alter(). + * Implementation of hook_menu_alter(). * * We need to add a token to the Masquerade paths to protect against CSRF * attacks. Since menu items in Drupal do not support dynamic elements these @@ -132,9 +132,12 @@ function masquerade_menu() { * hook_translated_menu_link_alter. Set the 'alter'-option to TRUE to make sure * the links get passed through hook_translated_menu_link_alter. */ -function masquerade_menu_link_alter(&$item) { - if (($item['page callback'] == 'masquerade_switch_user_page') || ($item['page callback'] == 'masquerade_switch_back_page')) { - $item['options']['alter'] = TRUE; +function masquerade_menu_alter(&$items) { + $items['masquerade/unswitch']['options']['alter'] = TRUE; + $items['masquerade/switch/%']['options']['alter'] = TRUE; + $default_test_user = _masquerade_user_load(variable_get('masquerade_test_user', '')); + if ($default_test_user && ($default_test_user->uid || $default_test_user->name == variable_get('anonymous', t('Anonymous')))) { + $items['masquerade/switch/' . $default_test_user->uid]['options']['alter'] = TRUE; } } @@ -364,7 +367,7 @@ function masquerade_user($op, &$edit, &$ break; case 'validate': - if ($category == 'account') { + if ($category == 'account' && isset($edit['masquerade_users'])) { $users = drupal_explode_tags($edit['masquerade_users']); foreach ($users as $user) { if (!user_load(array('name' => $user))) {