From 912dcde784e5e096f26d77df90701a71e3b7d882 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Wed, 2 Dec 2009 19:52:23 +0000 Subject: - Patch #398110 by matt2000: bugfix: node_submit() resets ->uid. --- modules/node/node.module | 8 +++++--- modules/node/node.test | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'modules') diff --git a/modules/node/node.module b/modules/node/node.module index 753063b50..ffaa3a0f7 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -924,13 +924,15 @@ function node_validate($node, $form = array()) { } /** - * Prepare node for save and allow modules to make changes. + * Prepare node for saving by populating author and creation date. */ function node_submit($node) { global $user; - if (user_access('administer nodes')) { - // Populate the "authored by" field. + // A user with 'administer nodes' permission might assign the node author by + // entering a user name in the node form, which we then need to translate to a + // user ID, unless we've already been provided a user ID by other means. + if (user_access('administer nodes') && !isset($node->uid)) { if ($account = user_load_by_name($node->name)) { $node->uid = $account->uid; } diff --git a/modules/node/node.test b/modules/node/node.test index 8d27c11bb..699e9dc4f 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -840,7 +840,11 @@ class NodeSaveTestCase extends DrupalWebTestCase { 'nid' => $test_nid, 'is_new' => TRUE, ); - $node = (object)$node; + $node = node_submit((object)$node); + + // Verify that node_submit did not overwrite the user ID. + $this->assertEqual($node->uid, $this->web_user->uid, t('Function node_submit() preserves user ID')); + node_save($node); // Test the import. $node_by_nid = node_load($test_nid); -- cgit v1.2.3