You are here

protected function OrgAccessControlHandler::checkCreateAccess in RedHen CRM 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/redhen_org/src/OrgAccessControlHandler.php, line 82

Class

OrgAccessControlHandler
Access controller for the Org entity.

Namespace

Drupal\redhen_org

Code

protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {

  // If there is only one redhen_org bundle, set $entity_bundle to it
  // since OrgAddController::add returns the add form for the solitary
  // bundle instead of a bundle select form if there is only one.
  if (!$entity_bundle) {
    $types = \Drupal::entityTypeManager()
      ->getStorage('redhen_org_type')
      ->loadMultiple();
    if ($types && count($types) == 1) {
      $entity_bundle = array_keys($types)[0];
    }
  }
  return AccessResult::allowedIfHasPermissions($account, [
    'add org entities',
    'add ' . $entity_bundle . ' org',
  ], 'OR');
}