You are here

protected function EntitySubqueueAccessControlHandler::checkCreateAccess in Entityqueue 8

Performs create access checks.

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

Parameters

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

array $context: An array of key-value pairs to pass additional context when needed.

string|null $entity_bundle: (optional) The bundle of the entity. Required if the entity supports bundles, defaults to NULL otherwise.

Return value

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

Overrides EntityAccessControlHandler::checkCreateAccess

File

src/EntitySubqueueAccessControlHandler.php, line 51

Class

EntitySubqueueAccessControlHandler
Defines the access control handler for the entity_subqueue entity type.

Namespace

Drupal\entityqueue

Code

protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
  $access_result = AccessResult::allowedIfHasPermissions($account, [
    "create {$entity_bundle} entityqueue",
    'manipulate all entityqueues',
    'administer entityqueue',
  ], 'OR');
  if ($entity_bundle) {
    $queue = EntityQueue::load($entity_bundle);
    $access_result = AccessResult::allowedIf(!$queue
      ->getHandlerPlugin()
      ->hasAutomatedSubqueues());
    $access_result
      ->addCacheableDependency($queue);
  }
  return $access_result;
}