diff options
author | Dries Buytaert <dries@buytaert.net> | 2007-11-13 14:56:14 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2007-11-13 14:56:14 +0000 |
commit | 8d01757e5d82c2d400350447d72cf93fa1de74a0 (patch) | |
tree | 6b93d30f12cc466820a2e730e4498b338d74a38e /modules | |
parent | 17d1527e3d76fb791b61e89a4736afe0e0adefc6 (diff) | |
download | brdo-8d01757e5d82c2d400350447d72cf93fa1de74a0.tar.gz brdo-8d01757e5d82c2d400350447d72cf93fa1de74a0.tar.bz2 |
- Patch #187799 by greggles et al: fixed problem with revisions being associated with the wrong user.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/node/node.module | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/modules/node/node.module b/modules/node/node.module index 636cb5022..85b9fadb7 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -806,16 +806,16 @@ function node_save(&$node) { //the node_revisions table query if ($node->is_new) { drupal_write_record('node', $node); - drupal_write_record('node_revisions', $node); + _node_save_revision($node, $user->uid); $op = 'insert'; } else { drupal_write_record('node', $node, 'nid'); if (!empty($node->revision)) { - drupal_write_record('node_revisions', $node); + _node_save_revision($node, $user->uid); } else { - drupal_write_record('node_revisions', $node, 'vid'); + _node_save_revision($node, $user->uid, 'vid'); $update_node = FALSE; } $op = 'update'; @@ -835,6 +835,22 @@ function node_save(&$node) { cache_clear_all(); } + +/** + * Helper function to save a revision with current user responsible for revision. + */ +function _node_save_revision($node, $uid, $update = NULL) { + $temp_uid = $node->uid; + $node->uid = $uid; + if (isset($update)) { + drupal_write_record('node_revisions', $node, $update); + } + else { + drupal_write_record('node_revisions', $node); + } + $node->uid = $temp_uid; +} + /** * Delete a node. */ |