You are here

function simple_access_node_load in Simple Access 8.3

Same name and namespace in other branches
  1. 7.2 simple_access.module \simple_access_node_load()

Implements hook_node_load().

File

./simple_access.module, line 34
Builds simple access definition for content access.

Code

function simple_access_node_load(array $nodes) {
  $nids = [];
  foreach ($nodes as $nid => $node) {
    $nids[] = $nid;
    $node->simple_access = [];
  }
  $groups = \Drupal::database()
    ->select('simple_access_node_group', 'na')
    ->fields('na', [
    'nid',
    'gid',
    'grant_view',
    'grant_update',
    'grant_delete',
  ])
    ->condition('nid', $nids, 'IN')
    ->execute()
    ->fetchAll(PDO::FETCH_ASSOC);
  $profiles = \Drupal::database()
    ->select('simple_access_node_profile', 'pn')
    ->fields('pn', [
    'nid',
    'pid',
  ])
    ->condition('nid', $nids, 'IN')
    ->execute()
    ->fetchAll(PDO::FETCH_ASSOC);
  foreach ($groups as $row) {
    $nodes[$row['nid']]->simple_access['groups'][$row['gid']] = array_combine([
      'nid',
      'gid',
      'view',
      'update',
      'delete',
    ], $row);
  }
  foreach ($profiles as $row) {
    $nodes[$row['nid']]->simple_access['profiles'][$row['pid']] = $row['pid'];
  }
}