mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-09-29 12:49:00 +02:00
BUG Correct response code generated from error pages
This commit is contained in:
commit
682e6070e5
@ -323,22 +323,5 @@ class ErrorPage extends Page {
|
|||||||
* @package cms
|
* @package cms
|
||||||
*/
|
*/
|
||||||
class ErrorPage_Controller extends Page_Controller {
|
class ErrorPage_Controller extends Page_Controller {
|
||||||
|
|
||||||
/**
|
|
||||||
* Overload the provided {@link Controller::handleRequest()} to append the
|
|
||||||
* correct status code post request since otherwise permission related error
|
|
||||||
* pages such as 401 and 403 pages won't be rendered due to
|
|
||||||
* {@link SS_HTTPResponse::isFinished() ignoring the response body.
|
|
||||||
*
|
|
||||||
* @param SS_HTTPRequest $request
|
|
||||||
* @param DataModel $model
|
|
||||||
* @return SS_HTTPResponse
|
|
||||||
*/
|
|
||||||
public function handleRequest(SS_HTTPRequest $request, DataModel $model = NULL) {
|
|
||||||
$body = parent::handleRequest($request, $model);
|
|
||||||
$this->getResponse()->setStatusCode($this->ErrorCode);
|
|
||||||
|
|
||||||
return $this->getResponse();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,11 +65,17 @@ class ErrorPageTest extends FunctionalTest {
|
|||||||
$page = $this->objFromFixture('ErrorPage', '403');
|
$page = $this->objFromFixture('ErrorPage', '403');
|
||||||
$page->publish('Stage', 'Live');
|
$page->publish('Stage', 'Live');
|
||||||
|
|
||||||
$response = $this->get($page->RelativeLink());
|
try {
|
||||||
|
$controller = singleton('ContentController');
|
||||||
|
$controller->httpError(403);
|
||||||
|
$this->fail('Expected exception to be thrown');
|
||||||
|
}
|
||||||
|
catch(SS_HTTPResponse_Exception $e) {
|
||||||
|
$response = $e->getResponse();
|
||||||
$this->assertEquals($response->getStatusCode(), '403');
|
$this->assertEquals($response->getStatusCode(), '403');
|
||||||
$this->assertNotNull($response->getBody(), 'We have body text from the error page');
|
$this->assertNotNull($response->getBody(), 'We have body text from the error page');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function testSecurityError() {
|
public function testSecurityError() {
|
||||||
// Generate 404 page
|
// Generate 404 page
|
||||||
|
Loading…
Reference in New Issue
Block a user