Commit 5177237f authored by David_Rothstein's avatar David_Rothstein

Issue #1429442 by Jody Lynn, mathankumarc, gnuget, nrambeck, dcam | sun: Fixed...

Issue #1429442 by Jody Lynn, mathankumarc, gnuget, nrambeck, dcam | sun: Fixed Access denied page shown after submitting form that creates a unpublished node.
parent 20a45b11
Drupal 7.22, xxxx-xx-xx (development version)
-----------------------
- Changed the default behavior after a user creates a node they do not have
access to view. The user will now be redirected to the front page rather than
an access denied page.
- Fixed a bug which prevented empty HTTP headers (such as "0") from being set.
(Minor behavior change: Callers of drupal_add_http_header() must now set
FALSE explicitly to prevent a header from being sent at all; this was already
......
......@@ -677,6 +677,7 @@ class ForumIndexTestCase extends DrupalWebTestCase {
'status' => FALSE,
);
$this->drupalPost("node/{$node->nid}/edit", $edit, t('Save'));
$this->drupalGet("node/{$node->nid}");
$this->assertText(t('Access denied'), 'Unpublished node is no longer accessible.');
// Verify that the node no longer appears on the index.
......
......@@ -470,7 +470,7 @@ function node_form_submit($form, &$form_state) {
if ($node->nid) {
$form_state['values']['nid'] = $node->nid;
$form_state['nid'] = $node->nid;
$form_state['redirect'] = 'node/' . $node->nid;
$form_state['redirect'] = node_access('view', $node) ? 'node/' . $node->nid : '<front>';
}
else {
// In the unlikely case something went wrong on save, the node will be
......
......@@ -573,6 +573,25 @@ class NodeCreationTestCase extends DrupalWebTestCase {
$records = db_query("SELECT wid FROM {watchdog} WHERE variables LIKE '%Test exception for rollback.%'")->fetchAll();
$this->assertTrue(count($records) > 0, t('Rollback explanatory error logged to watchdog.'));
}
/**
* Create an unpublished node and confirm correct redirect behavior.
*/
function testUnpublishedNodeCreation() {
// Set "Basic page" content type to be unpublished by default.
variable_set('node_options_page', array());
// Set the front page to the default "node" page.
variable_set('site_frontpage', 'node');
// Create a node.
$edit = array();
$edit["title"] = $this->randomName(8);
$edit["body[" . LANGUAGE_NONE . "][0][value]"] = $this->randomName(16);
$this->drupalPost('node/add/page', $edit, t('Save'));
// Check that the user was redirected to the home page.
$this->assertText(t('Welcome to Drupal'), t('The user is redirected to the home page.'));
}
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment