Permalink
Browse files

Merge remote-tracking branch 'origin/3.1'

  • Loading branch information...
tractorcow committed May 11, 2014
2 parents b369928 + bae9580 commit 6a69134fb04565f865cf05f6e2a5bd9ff4e9de61
View
@@ -1,3 +1,6 @@
LeftAndMain:
extensions:
- - LeftAndMainPageIconsExtension
+ - LeftAndMainPageIconsExtension
+Security:
+ extensions:
+ - ErrorPageControllerExtension
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Enhances error handling for a controller with ErrorPage generated output
+ *
+ * @package cms
+ * @subpackage controller
+ */
+class ErrorPageControllerExtension extends Extension {
+
+ public function onBeforeHTTPError($statusCode, $request) {
+ $response = ErrorPage::response_for($statusCode);
+ if($response) {
+ throw new SS_HTTPResponse_Exception($response, $statusCode);
+ }
+ }
+}
View
@@ -201,6 +201,8 @@ public function getCMSFields() {
415 => _t('ErrorPage.415', '415 - Unsupported Media Type'),
416 => _t('ErrorPage.416', '416 - Request Range Not Satisfiable'),
417 => _t('ErrorPage.417', '417 - Expectation Failed'),
+ 422 => _t('ErrorPage.422', '422 - Unprocessable Entity'),
+ 429 => _t('ErrorPage.429', '429 - Too Many Requests'),
500 => _t('ErrorPage.500', '500 - Internal Server Error'),
501 => _t('ErrorPage.501', '501 - Not Implemented'),
502 => _t('ErrorPage.502', '502 - Bad Gateway'),
View
@@ -0,0 +1,45 @@
+// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/nb.js.
+// See https://github.com/silverstripe/silverstripe-buildtools for details
+if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
+ if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
+} else {
+ ss.i18n.addDictionary('nb', {
+ "CMSMAIN.ALERTCLASSNAME": "Sidetypen vil bare bli oppdatert når siden blir lagret",
+ "CMSMain.RollbackToVersion": "Vil du virkelig rulle tilbake til versjon #%s av denne siden?",
+ "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node",
+ "CMSMAIN.PUBLISHINGPAGES": "Publiserer sider ...",
+ "CMSMAIN.SELECTMOREPAGES": "Du har valgt %s sider.\n\nVil du virkelig utføre denne handlingen?",
+ "CMSMAIN.SAVING": "lagrer ...",
+ "CMSMAIN.ERRORDELETINGPAGES": "Feil ved sletting av sider",
+ "URLSEGMENT.Edit": "Rediger",
+ "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Du må lagre siden før du kan legge til undersider.",
+ "CMSMAIN.PUBLISHING": "Publiserer ...",
+ "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.",
+ "URLSEGMENT.Cancel": "Avbryt",
+ "Tree.ShowAsList": "Vis undersider som en liste",
+ "CMSMAIN.ERRORREVERTING": "Error reverting to live content",
+ "Tree.ThisPageOnly": "Bare denne siden",
+ "CMSMain.ConfirmRestoreFromLive": "Vil du virkelig kopiere den publiserte siden til utkastsiden?",
+ "CMSMAIN.ERRORPUBLISHING": "Feil ved publisering av sider",
+ "CMSMAIN.ERRORADDINGPAGE": "Feil ved opprettelse av side",
+ "AssetTableField.REALLYDELETE": "Vil du virkelig slette de merkede filene?",
+ "CMSMAIN.RESTORING": "Gjenoppretter ...",
+ "AssetTableField.MOVING": "Flytter %s file(r)",
+ "Tree.EditPage": "Rediger",
+ "URLSEGMENT.OK": "OK",
+ "CMSMAIN.ERRORUNFILTER": "Unfiltered tree",
+ "CMSMAIN.FILTEREDTREE": "Filtered tree to only show changed pages",
+ "AssetAdmin.ConfirmDelete": "Vil du virkelig slette denne mappen og alle filer som ligger i den?",
+ "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Vil du virkelig slette %s mapper?",
+ "CMSMAIN.AddSearchCriteria": "Legg til kriterie",
+ "Tree.Duplicate": "Dupliser",
+ "Tree.ThisPageAndSubpages": "Denne siden og undersider",
+ "WidgetAreaEditor.TOOMANY": "Beklager, du har for mange \"widgets\" i dette området",
+ "CMSMAIN.DELETINGPAGES": "Sletter sider ...",
+ "Folder.Name": "Mappenavn",
+ "CMSMAIN.REALLYDELETEPAGES": "Vil du virkelig slette de %s merkede sidene?",
+ "CMSMAIN.SELECTONEPAGE": "Vennligst velg minst én side.",
+ "Tree.AddSubPage": "Legg til ny side her",
+ "CMSMAIN.ERRORFILTERPAGES": "Could not filter tree to only show changed pages<br />%s"
+});
+}
View
@@ -200,6 +200,8 @@ en:
415: '415 - Unsupported Media Type'
416: '416 - Request Range Not Satisfiable'
417: '417 - Expectation Failed'
+ 422: '422 - Unprocessable Entity'
+ 429: '429 - Too Many Requests'
500: '500 - Internal Server Error'
501: '501 - Not Implemented'
502: '502 - Bad Gateway'
View
@@ -3,7 +3,7 @@ nb:
ADDFILES: 'Legg til filer'
ActionAdd: 'Legg til mappe'
AppCategoryArchive: Arkiv
- AppCategoryAudio: Audio
+ AppCategoryAudio: Lyd
AppCategoryDocument: Dokument
AppCategoryFlash: Flash
AppCategoryImage: Bilde
@@ -70,4 +70,16 @@ public function testBehaviourOf403() {
$this->assertEquals($response->getStatusCode(), '403');
$this->assertNotNull($response->getBody(), 'We have body text from the error page');
}
-}
+
+ public function testSecurityError() {
+ // Generate 404 page
+ $page = $this->objFromFixture('ErrorPage', '404');
+ $page->publish('Stage', 'Live');
+
+ // Test invalid action
+ $response = $this->get('Security/nosuchaction');
+ $this->assertEquals($response->getStatusCode(), '404');
+ $this->assertNotNull($response->getBody());
+ $this->assertContains('text/html', $response->getHeader('Content-Type'));
+ }
+}

0 comments on commit 6a69134

Please sign in to comment.