You are here

function social_event_managers_node_grants in Open Social 8.7

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  2. 8 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  3. 8.2 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  4. 8.3 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  5. 8.4 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  6. 8.5 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  7. 8.6 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  8. 8.8 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  9. 10.3.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  10. 10.0.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  11. 10.1.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()
  12. 10.2.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_grants()

Implements hook_node_grants().

File

modules/social_features/social_event/modules/social_event_managers/social_event_managers.module, line 228
Contains social_event_managers.module.

Code

function social_event_managers_node_grants(AccountInterface $account, $op) {
  $grants = [];

  // TODO:
  // Fetch all nodes this user has access to and add a grant for each of those!
  $query = \Drupal::database()
    ->select('node__field_event_managers', 'em');
  $query
    ->fields('em', [
    'entity_id',
  ]);
  $query
    ->condition('em.field_event_managers_target_id', $account
    ->id());

  // Add grants.
  foreach ($query
    ->execute()
    ->fetchAllAssoc('entity_id') as $nid) {
    $grants['social_event_managers:' . $nid->entity_id][] = $account
      ->id();
  }

  // Tell Drupal about users grants.
  return $grants;
}