diff --git a/core/modules/contact/contact.routing.yml b/core/modules/contact/contact.routing.yml index fc838d4..476e2dc 100644 --- a/core/modules/contact/contact.routing.yml +++ b/core/modules/contact/contact.routing.yml @@ -42,7 +42,7 @@ contact.site_page_category: _title: 'Contact category form' _content: '\Drupal\contact\Controller\ContactController::contactSitePage' requirements: - _entity_access: 'contact_category.contact' + _entity_access: 'contact_category.view' contact.personal_page: path: '/user/{user}/contact' diff --git a/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php index 6d55290..59ee2c7 100644 --- a/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php +++ b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php @@ -22,15 +22,15 @@ class CategoryAccessController extends EntityAccessController { * {@inheritdoc} */ public function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) { - if ($operation == 'delete' || $operation == 'update') { + if ($operation == 'view') { + // Do not allow access personal category via site-wide route. + return $account->hasPermission('access site-wide contact form') && $entity->id() !== 'personal'; + } + elseif ($operation == 'delete' || $operation == 'update') { // Do not allow the 'personal' category to be deleted, as it's used for // the personal contact form. return $account->hasPermission('administer contact forms') && $entity->id() !== 'personal'; } - elseif ($operation == 'contact') { - // Do not allow access personal category via site-wide route. - return $account->hasPermission('access site-wide contact form') && $entity->id() !== 'personal'; - } else { return $account->hasPermission('administer contact forms'); }