You are here

public function MappedObjectController::access in Salesforce Suite 8.3

Access callback for Mapped Object entity.

File

modules/salesforce_mapping/src/Controller/MappedObjectController.php, line 19

Class

MappedObjectController
Returns responses for devel module routes.

Namespace

Drupal\salesforce_mapping\Controller

Code

public function access(AccountInterface $account) {
  if (!$account
    ->hasPermission('administer salesforce')) {
    return AccessResult::forbidden();
  }

  // There must be a better way to get the entity from a route match.
  $param = current(\Drupal::routeMatch()
    ->getParameters()
    ->all());
  if (!is_object($param)) {
    return AccessResult::forbidden();
  }
  $implements = class_implements($param);
  if (empty($implements['Drupal\\Core\\Entity\\EntityInterface'])) {
    return AccessResult::forbidden();
  }

  // Only allow access for entities with mappings.
  return \Drupal::entityTypeManager()
    ->getStorage('salesforce_mapping')
    ->loadByEntity($param) ? AccessResult::allowed() : AccessResult::forbidden();
}