cvs diff: Diffing . ? .project Index: masquerade.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/masquerade/masquerade.module,v retrieving revision 1.16.2.23 diff -u -p -r1.16.2.23 masquerade.module --- masquerade.module 31 Aug 2009 17:51:28 -0000 1.16.2.23 +++ masquerade.module 31 Aug 2009 18:27:44 -0000 @@ -253,6 +253,8 @@ function _masquerade_test_user() { * Implementation of hook_user(). */ function masquerade_user($op, &$edit, &$edit_user, $category = NULL) { + static $old_session_id; + switch ($op) { case 'logout': @@ -313,6 +315,10 @@ function masquerade_user($op, &$edit, &$ } break; + case 'submit': + $old_session_id = session_id(); + break; + case 'update': $users = drupal_explode_tags($edit['masquerade_users']); db_query("DELETE FROM {masquerade_users} WHERE uid_from = %d", $edit_user->uid); @@ -322,6 +328,12 @@ function masquerade_user($op, &$edit, &$ } $edit['masquerade_users'] = NULL; break; + + case 'after_update': + if (isset($old_session_id) && session_id() != $old_session_id) { + db_query("UPDATE {masquerade} SET sid = '%s' WHERE sid = '%s'", session_id(), $old_session_id); + } + break; } }