materio_jsonapi.module 1.0 KB

123456789101112131415161718192021222324252627282930
  1. <?php
  2. use Drupal\Core\Entity\EntityInterface;
  3. use Drupal\Core\Session\AccountInterface;
  4. use Drupal\Core\Access\AccessResult;
  5. /**
  6. * Implements hook_ENTITY_TYPE_access().
  7. */
  8. function materio_jsonapi_user_role_access(EntityInterface $entity, $operation, AccountInterface $account) {
  9. debug($operation, 'operation materio_jsonapi_user_role_access');
  10. // watchdog('materio_jsonapi_user_role_access');
  11. if ($operation === 'view') {
  12. return AccessResult::allowedIfHasPermission($account, 'view role info');
  13. }
  14. return AccessResult::neutral();
  15. }
  16. /**
  17. * Implements hook_entity_field_access_alter().
  18. */
  19. function materio_jsonapi_entity_field_access_alter(array &$grants, array $context) {
  20. debug($context, 'context materio_jsonapi_entity_field_access_alter');
  21. // watchdog('materio_jsonapi_entity_field_access_alter');
  22. $field = $context['field_definition']->getName();
  23. if ($field == 'roles' && $context['operation'] == 'view') {
  24. $grants[':default'] = AccessResult::allowedIfHasPermission($context['account'], 'view role info');
  25. }
  26. }