isPublished()) { $access = AccessResult::allowedIfHasPermission($account, 'view unpublished reservations'); } $access = AccessResult::allowedIfHasPermission($account, 'view published reservations'); break; case 'update': $access = AccessResult::allowedIfHasPermission($account, 'edit any reservation'); if (!$access->isAllowed() && $account->hasPermission('edit own reservation')) { $access = $access->orIf(AccessResult::allowedIf($account->id() == $entity->getOwnerId())->cachePerUser()->addCacheableDependency($entity)); } break; case 'delete': $access = AccessResult::allowedIfHasPermission($account, 'delete any reservation'); if (!$access->isAllowed() && $account->hasPermission('delete own reservation')) { $access = $access->orIf(AccessResult::allowedIf($account->id() == $entity->getOwnerId())->cachePerUser()->addCacheableDependency($entity)); } break; // Unknown operation, no opinion. default: $access = AccessResult::neutral(); } return $access; } /** * {@inheritdoc} */ protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) { return AccessResult::allowedIfHasPermission($account, 'add reservations'); } }