You are here

protected function SubscriptionAccessControlHandler::checkAccess in Commerce Recurring Framework 8

Performs access checks.

This method is supposed to be overwritten by extending classes that do their own custom access checking.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity for which to check access.

string $operation: The entity operation. Usually one of 'view', 'view label', 'update' or 'delete'.

\Drupal\Core\Session\AccountInterface $account: The user for which to check access.

Return value

\Drupal\Core\Access\AccessResultInterface The access result.

Overrides EntityAccessControlHandlerBase::checkAccess

File

src/SubscriptionAccessControlHandler.php, line 17

Class

SubscriptionAccessControlHandler
Controls access based on the Subscription entity permissions.

Namespace

Drupal\commerce_recurring

Code

protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
  $result = parent::checkAccess($entity, $operation, $account);

  // Canceling a subscription requires either the 'cancel' or 'update'
  // permissions.
  if ($result
    ->isNeutral() && $operation === 'cancel') {
    $result = $this
      ->checkEntityOwnerPermissions($entity, 'update', $account);
  }
  return $result;
}