summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2007-11-13 14:56:14 +0000
committerDries Buytaert <dries@buytaert.net>2007-11-13 14:56:14 +0000
commit8d01757e5d82c2d400350447d72cf93fa1de74a0 (patch)
tree6b93d30f12cc466820a2e730e4498b338d74a38e /modules
parent17d1527e3d76fb791b61e89a4736afe0e0adefc6 (diff)
downloadbrdo-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.module22
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.
*/