commerce_product_bundles-8.x-1.0/src/Access/ProductBundleVariationTypeAccessControlHandler.php
src/Access/ProductBundleVariationTypeAccessControlHandler.php
<?php namespace Drupal\commerce_product_bundles\Access; use Drupal\commerce\CommerceBundleAccessControlHandler; use Drupal\Core\Access\AccessResult; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Class ProductBundleVariationTypeAccessControlHandler * * @package Drupal\commerce_product_bundles\Access * * @see \Drupal\commerce_product\Access\ProductVariationCollectionAccessCheck */ class ProductBundleVariationTypeAccessControlHandler extends CommerceBundleAccessControlHandler { /** * {@inheritdoc} */ protected $viewLabelOperation = TRUE; /** * {@inheritdoc} */ protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) { if ($operation === 'view label') { $bundle = $entity->id(); $permissions = [ 'administer commerce_product_bundles', 'access commerce_product_bundles overview', "manage $bundle commerce_bundle_variation", ]; return AccessResult::allowedIfHasPermissions($account, $permissions, 'OR'); } else { return parent::checkAccess($entity, $operation, $account); } } }