diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-02 19:52:23 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-02 19:52:23 +0000 |
commit | 912dcde784e5e096f26d77df90701a71e3b7d882 (patch) | |
tree | 391417e01dbb3cd42bb8f32e63a5b032dd93d3d7 /modules | |
parent | 2845fa952af35c66555bda24899256537222af67 (diff) | |
download | brdo-912dcde784e5e096f26d77df90701a71e3b7d882.tar.gz brdo-912dcde784e5e096f26d77df90701a71e3b7d882.tar.bz2 |
- Patch #398110 by matt2000: bugfix: node_submit() resets ->uid.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/node/node.module | 8 | ||||
-rw-r--r-- | modules/node/node.test | 6 |
2 files changed, 10 insertions, 4 deletions
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); |