Skip to content
Snippets Groups Projects
Unverified Commit 78f8ee05 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3018148 by Lendude, tstoeckler: Views bulk forms perform redirects to...

Issue #3018148 by Lendude, tstoeckler: Views bulk forms perform redirects to the confirmation page even if it is not allowed for the user
parent 3cc12575
No related branches found
No related tags found
No related merge requests found
......@@ -128,6 +128,22 @@ public function testNodeEditAccess() {
// Re-load the node and check the status.
$node = Node::load($node->id());
$this->assertTrue($node->isPublished(), 'The node is still published.');
// Try to delete the node and check that we are not redirected to the
// conformation form but stay on the content view.
$this->assertNotEmpty($this->cssSelect('#views-form-test-node-bulk-form-page-1'));
$edit = [
'node_bulk_form[0]' => TRUE,
'action' => 'node_delete_action',
];
$this->drupalPostForm('test-node-bulk-form', $edit, t('Apply to selected items'));
// Test that the action message isn't shown.
$this->assertRaw(new FormattableMarkup('No access to execute %action on the @entity_type_label %entity_label.', [
'%action' => 'Delete content',
'@entity_type_label' => 'Content',
'%entity_label' => $node->label(),
]));
$this->assertNotEmpty($this->cssSelect('#views-form-test-node-bulk-form-page-1'));
}
/**
......
......@@ -402,6 +402,12 @@ public function viewsFormSubmit(&$form, FormStateInterface $form_state) {
$entities[$bulk_form_key] = $entity;
}
// If there were entities selected but the action isn't allowed on any of
// them, we don't need to do anything further.
if (!$count) {
return;
}
$action->execute($entities);
$operation_definition = $action->getPluginDefinition();
......@@ -414,11 +420,9 @@ public function viewsFormSubmit(&$form, FormStateInterface $form_state) {
else {
// Don't display the message unless there are some elements affected and
// there is no confirmation form.
if ($count) {
$this->messenger->addStatus($this->formatPlural($count, '%action was applied to @count item.', '%action was applied to @count items.', [
'%action' => $action->label(),
]));
}
$this->messenger->addStatus($this->formatPlural($count, '%action was applied to @count item.', '%action was applied to @count items.', [
'%action' => $action->label(),
]));
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment