Skip to content

Commit 2791227

Browse files
API Make ElementalAreaController a subclass of FormSchemaController (#1273)
1 parent b77d664 commit 2791227

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/Controllers/ElementalAreaController.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use DNADesign\Elemental\Forms\EditFormFactory;
66
use DNADesign\Elemental\Models\BaseElement;
77
use DNADesign\Elemental\Services\ElementTypeRegistry;
8-
use SilverStripe\CMS\Controllers\CMSMain;
98
use SilverStripe\Control\HTTPResponse;
109
use SilverStripe\Core\Injector\Injector;
1110
use SilverStripe\Forms\Form;
@@ -20,17 +19,18 @@
2019
use Exception;
2120
use SilverStripe\Control\HTTPRequest;
2221
use InvalidArgumentException;
22+
use SilverStripe\Admin\FormSchemaController;
2323

2424
/**
2525
* Controller for "ElementalArea" - handles loading and saving of in-line edit forms in an elemental area in admin
2626
*/
27-
class ElementalAreaController extends CMSMain
27+
class ElementalAreaController extends FormSchemaController
2828
{
2929
const FORM_NAME_TEMPLATE = 'ElementForm_%s';
3030

3131
private static $url_segment = 'elemental-area';
3232

33-
private static $ignore_menuitem = true;
33+
private static string $required_permission_codes = 'CMS_ACCESS';
3434

3535
private static $url_handlers = [
3636
'elementForm/$ItemID' => 'elementForm',

tests/Controllers/ElementalAreaControllerTest.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
class ElementalAreaControllerTest extends FunctionalTest
1313
{
1414
protected static $fixture_file = 'ElementalAreaControllerTest.yml';
15-
15+
1616
protected static $extra_dataobjects = [
1717
TestElementContent::class,
1818
TestElementalArea::class,
@@ -180,9 +180,9 @@ public function testElementFormPost(string $idType, string $dataType, string $fa
180180
$response = $this->post($url, $data, $headers);
181181
$this->assertSame($expectedCode, $response->getStatusCode());
182182
if ($fail === 'csrf-token') {
183-
// Will end up at an HTML page with "Silverstripe - Bad Request"
184-
$this->assertSame('text/html; charset=utf-8', $response->getHeader('Content-type'));
185-
$this->assertStringContainsString('Silverstripe - Bad Request', $response->getBody());
183+
// Gives suitable error message for XHR request
184+
$this->assertStringStartsWith('text/plain', $response->getHeader('Content-type'));
185+
$this->assertStringContainsString('There seems to have been a technical problem', $response->getBody());
186186
return;
187187
}
188188
$this->assertSame($expectedCode, $response->getStatusCode());

0 commit comments

Comments
 (0)