Merged 10.4.3.

merge-requests/10915/merge
Dave Long 2025-02-18 22:41:09 +00:00
commit 8251bf39ed
No known key found for this signature in database
GPG Key ID: ED52AE211E142771
7 changed files with 21 additions and 19 deletions

4
composer.lock generated
View File

@ -9999,8 +9999,8 @@
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"platform": {},
"platform-dev": {},
"platform-overrides": {
"php": "8.1.0"
},

View File

@ -779,6 +779,7 @@ class DrupalKernel implements DrupalKernelInterface, TerminableInterface {
if ($e instanceof HttpExceptionInterface) {
$response = new Response($e->getMessage(), $e->getStatusCode());
$response->headers->add($e->getHeaders());
$response->headers->set('Content-Type', 'text/plain');
return $response;
}

View File

@ -87,21 +87,14 @@ class DefaultExceptionHtmlSubscriber extends HttpExceptionSubscriberBase {
* The event to process.
*/
public function on4xx(ExceptionEvent $event) {
if (($exception = $event->getThrowable()) && $exception instanceof HttpExceptionInterface) {
// Avoid making a subrequest for 400 errors because the same conditions that
// caused the 400 error could also happen in the subrequest. This allows 400
// exceptions to fall through to FinalExceptionSubscriber::on4xx.
if (($exception = $event->getThrowable()) && $exception instanceof HttpExceptionInterface && $exception->getStatusCode() > 400) {
$this->makeSubrequest($event, '/system/4xx', $exception->getStatusCode());
}
}
/**
* Handles a 400 error for HTML.
*
* @param \Symfony\Component\HttpKernel\Event\ExceptionEvent $event
* The event to process.
*/
public function on400(ExceptionEvent $event): void {
throw $event->getThrowable();
}
/**
* Handles a 401 error for HTML.
*

View File

@ -53,7 +53,7 @@ abstract class FieldUpdateActionBase extends ActionBase {
$result = $object->access('update', $account, TRUE);
foreach ($this->getFieldsToUpdate() as $field => $value) {
$result->andIf($object->{$field}->access('edit', $account, TRUE));
$result = $result->andIf($object->{$field}->access('edit', $account, TRUE));
}
return $return_as_object ? $result : $result->isAllowed();

View File

@ -5,6 +5,7 @@ namespace Drupal\views;
use Drupal\Component\Plugin\Exception\PluginException;
use Drupal\Component\Plugin\PluginManagerInterface;
use Drupal\Core\Plugin\DefaultLazyPluginCollection;
use Drupal\views\Plugin\views\display\DisplayPluginInterface;
/**
* A class which wraps the displays of a view so you can lazy-initialize them.
@ -59,8 +60,10 @@ class DisplayPluginCollection extends DefaultLazyPluginCollection {
*/
public function clear() {
foreach (array_filter($this->pluginInstances) as $display) {
if ($display instanceof DisplayPluginInterface) {
$display->destroy();
}
}
parent::clear();
}

View File

@ -78,6 +78,14 @@ class ExposedFilterAJAXTest extends WebDriverTestBase {
* Tests if exposed filtering via AJAX works for the "Content" View.
*/
public function testExposedFiltering(): void {
// Create an account that can update the sticky flag.
$user = $this->drupalCreateUser([
'access content overview',
'administer nodes',
'edit any page content',
]);
$this->drupalLogin($user);
// Visit the View page.
$this->drupalGet('admin/content');

View File

@ -9,7 +9,6 @@ use Drupal\Core\Logger\RfcLogLevel;
use Drupal\KernelTests\KernelTestBase;
use Symfony\Component\ErrorHandler\BufferingLogger;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\HttpException;
/**
* Tests that HTTP exceptions are logged correctly.
@ -64,9 +63,7 @@ class ExceptionLoggingSubscriberTest extends KernelTestBase {
public static function exceptionDataProvider(): array {
return [
// When a BadRequestException is thrown, DefaultHttpExceptionSubscriber
// will rethrow the exception.
[400, 'client error', RfcLogLevel::WARNING, HttpException::class],
[400, 'client error', RfcLogLevel::WARNING],
[401, 'client error', RfcLogLevel::WARNING],
[403, 'access denied', RfcLogLevel::WARNING],
[404, 'page not found', RfcLogLevel::WARNING],