public function FormManglerService::redirectToEntityEditForm in Rabbit Hole 8
Same name and namespace in other branches
- 2.x src/FormManglerService.php \Drupal\rabbit_hole\FormManglerService::redirectToEntityEditForm()
Redirects back to entity edit form to prevent hitting error page.
Parameters
array $form: The form.
\Drupal\Core\Form\FormStateInterface $form_state: The form state.
File
- src/
FormManglerService.php, line 413
Class
- FormManglerService
- Provides necessary form alterations.
Namespace
Drupal\rabbit_holeCode
public function redirectToEntityEditForm(array $form, FormStateInterface $form_state) {
$entity = $form_state
->getFormObject()
->getEntity();
$plugin = $this->behaviorInvoker
->getBehaviorPlugin($entity);
// Set form redirect to entity edit page to prevent 403/404 errors if
// Rabbit Hole is enabled and the user doesn't have the bypass access.
if ($plugin !== NULL && !$plugin instanceof DisplayPage) {
$redirect = $form_state
->getRedirect();
// Change redirect URL only if current one is set to canonical page.
if ($redirect instanceof Url && $redirect
->toString() === $entity
->toUrl()
->toString()) {
$form_state
->setRedirectUrl($entity
->toUrl('edit-form'));
}
}
}