Index: includes/menu.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/menu.inc,v retrieving revision 1.76 diff -u -F^function -r1.76 menu.inc --- includes/menu.inc 22 Jan 2005 09:10:59 -0000 1.76 +++ includes/menu.inc 27 Jan 2005 17:32:49 -0000 @@ -491,11 +491,16 @@ function menu_in_active_trail($mid) { * * This need only be called at the start of pages that modify the menu. */ -function menu_rebuild() { - // Clear the page cache, so that changed menus are reflected for anonymous users. - cache_clear_all(); - // Also clear the menu cache. - cache_clear_all('menu:', TRUE); +function menu_rebuild($uid = 0) { + if ($uid == 0) { + // Clear the page cache, so that changed menus are reflected for anonymous users. + cache_clear_all(); + // Also clear the menu cache. + cache_clear_all('menu:', TRUE); + } + else { + cache_clear_all('menu:'. $uid, TRUE); + } _menu_build(); Index: modules/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user.module,v retrieving revision 1.433 diff -u -F^function -r1.433 user.module --- modules/user.module 25 Jan 2005 20:27:09 -0000 1.433 +++ modules/user.module 27 Jan 2005 17:32:50 -0000 @@ -197,6 +197,8 @@ function user_save($account, $array = ar if ($authmaps) { user_set_authmaps($user, $authmaps); } + // Rebuild this user's menu to account for possibly changed permissions. + menu_rebuild($user->uid); return $user; }