See: https://github.com/silverstripe/silverstripe-framework/issues/2467
popCurrent would be incorrectly not pop a controller from the controller stack if an exception was throw from inside the handleRequest() method.
This change captures the exception, ensures the controller is popped from the stack and passes the exception along.
Historically, if you visit a foo action on Page, and Page_foo.ss doesn't exist, then it fails over
to Page.ss. The introduction of ContentController::getViewer() broke this, but this patch adds a
test for this case and fixes it.
It was identified by build failures on silverstripe/userforms when tested against the master branch.
SiteTree versions that arent the live version shouldnt be accessed by
regular users, but the logic to check that was split off into canViewStage,
which wasnt checked by code that isnt specifically SiteTree aware
(like RestfulServer)
It was possible to append '/successfullyinstalled' to any SilverStripe
URL (with the cms module present), and the code would run, including
republishing the 404 page.
Now, if the install.php file is gone, this controller method throws the
410 (Gone) status code. The 410 status is chosen rather than 404 to
mitigate the likelihood that crawlers such as the Googlebot will follow
stray links to this URI.
https://github.com/silverstripe/sapphire/pull/827 adds some extension points for catching HTTP errors such as 404. This change fixes some issues where httpError() isn't used all the time. Note that the aforementioned pull request will be necessary to ensure that it works properly.
Installer was feeing the title "Title" to the template. Template
rearranged for usability concerns (people were missing the email and
password when going to the CMS login page)
The widget functionality has been moved into a module, and this URL handler was the last of the code still in the core app related to widgets. As well as this commit, there is a related change to the silverstripe-widgets module to add this feature there: 025ee424c4