diff --git a/lib/Cake/Controller/Controller.php b/lib/Cake/Controller/Controller.php index 4dacc8e0763..f1d40faffea 100644 --- a/lib/Cake/Controller/Controller.php +++ b/lib/Cake/Controller/Controller.php @@ -531,7 +531,7 @@ protected function _getScaffold(CakeRequest $request) { } /** - * Merge components, helpers, and uses vars from + * Merge components, helpers, and uses vars from * Controller::$_mergeParent and PluginAppController. * * @return void @@ -770,18 +770,17 @@ public function redirect($url, $status = null, $exit = true) { session_write_close(); } - if (!empty($status) && is_string($status)) { - $codes = array_flip($this->response->httpCodes()); - if (isset($codes[$status])) { - $status = $codes[$status]; - } - } - if ($url !== null) { $this->response->header('Location', Router::url($url, true)); } - if (!empty($status) && ($status >= 300 && $status < 400)) { + if (!empty($status)) { + if (is_string($status)) { + $codes = array_flip($this->response->httpCodes()); + if (isset($codes[$status])) { + $status = $codes[$status]; + } + } $this->response->statusCode($status); } diff --git a/lib/Cake/Test/Case/Controller/ControllerTest.php b/lib/Cake/Test/Case/Controller/ControllerTest.php index 472c7a48c7a..b0f084749dc 100644 --- a/lib/Cake/Test/Case/Controller/ControllerTest.php +++ b/lib/Cake/Test/Case/Controller/ControllerTest.php @@ -387,7 +387,7 @@ class AnotherTestController extends ControllerTestAppController { /** * merge parent - * + * * @var string */ protected $_mergeParent = 'ControllerTestAppController'; @@ -729,7 +729,8 @@ public static function statusCodeProvider() { array(303, "See Other"), array(304, "Not Modified"), array(305, "Use Proxy"), - array(307, "Temporary Redirect") + array(307, "Temporary Redirect"), + array(403, "Forbidden"), ); }