Skip to content
Snippets Groups Projects
Unverified Commit e47f5e75 authored by Lauri Timmanee's avatar Lauri Timmanee
Browse files

Issue #2843992 by smustgrave, jasonawant, moshnoi, alexpott: Block page...

Issue #2843992 by smustgrave, jasonawant, moshnoi, alexpott: Block page visibility paths are not validated, using path a without leading forward slash does not work
parent 753eef8a
Branches
Tags
26 merge requests!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
......@@ -244,6 +244,17 @@ public function testBlock() {
$xpath = $this->assertSession()->buildXPathQuery('//div[@id=:id]/*', [':id' => 'block-' . str_replace('_', '-', strtolower($block['id']))]);
$this->assertSession()->elementNotExists('xpath', $xpath);
$pages = [
'',
'<front>',
'/valid-page',
'user/login',
];
// Test error when not including forward slash.
$this->drupalGet('admin/structure/block/manage/' . $block['id']);
$this->submitForm(['visibility[request_path][pages]' => implode("\n", $pages)], 'Save block');
$this->assertSession()->pageTextContains('The path user/login requires a leading forward slash when used with the Pages setting.');
// Test deleting the block from the edit form.
$this->drupalGet('admin/structure/block/manage/' . $block['id']);
$this->clickLink('Remove block');
......
......@@ -112,6 +112,19 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
return parent::buildConfigurationForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
$paths = array_map('trim', explode("\n", $form_state->getValue('pages')));
foreach ($paths as $path) {
if (empty($path) || $path === '<front>' || str_starts_with($path, '/')) {
continue;
}
$form_state->setErrorByName('pages', $this->t("The path %path requires a leading forward slash when used with the Pages setting.", ['%path' => $path]));
}
}
/**
* {@inheritdoc}
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment