You are here

protected function TeamAccessHandler::checkCreateAccess in Apigee Edge 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

modules/apigee_edge_teams/src/Entity/TeamAccessHandler.php, line 106

Class

TeamAccessHandler
Access handler for Team entities.

Namespace

Drupal\apigee_edge_teams\Entity

Code

protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
  $result = parent::checkCreateAccess($account, $context, $entity_bundle);
  if ($result
    ->isNeutral()) {
    $permissions = [
      "create {$this->entityType->id()}",
    ];
    if ($this->entityType
      ->getAdminPermission()) {
      $permissions[] = $this->entityType
        ->getAdminPermission();
    }
    $result = AccessResult::allowedIfHasPermissions($account, $permissions, 'OR');
  }
  return $result;
}