summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-02 19:52:23 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-02 19:52:23 +0000
commit912dcde784e5e096f26d77df90701a71e3b7d882 (patch)
tree391417e01dbb3cd42bb8f32e63a5b032dd93d3d7 /modules
parent2845fa952af35c66555bda24899256537222af67 (diff)
downloadbrdo-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.module8
-rw-r--r--modules/node/node.test6
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);