You are here

function simple_access_node_access_records in Simple Access 8.3

Same name and namespace in other branches
  1. 5.2 simple_access.module \simple_access_node_access_records()
  2. 5 simple_access.module \simple_access_node_access_records()
  3. 6.2 simple_access.module \simple_access_node_access_records()
  4. 7.2 simple_access.module \simple_access_node_access_records()

Implements hook_node_access_records().

File

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

Code

function simple_access_node_access_records(NodeInterface $node) {
  $records = [];
  if (!empty($node->simple_access['profiles'])) {
    foreach (array_filter($node->simple_access['profiles']) as $pid) {
      $records[] = [
        'realm' => 'simple_access_profile:' . $pid,
        'gid' => 0,
        'grant_view' => 1,
        'grant_update' => 1,
        'grant_delete' => 1,
        'priority' => 0,
      ];
    }
  }
  if (!empty($node->simple_access['groups'])) {

    // Loop through simple_access arrays from page submission
    // $type is either 'view', 'update', or 'delete'.
    foreach ($node->simple_access['groups'] as $gid => $access) {
      if ($access['view'] || $access['update'] || $access['delete']) {
        if ($gid == 'owner') {
          $id = $node
            ->getOwnerId();
        }
        else {
          $id = 0;
        }
        $records[] = [
          'realm' => 'simple_access_group:' . $gid,
          'gid' => $id,
          'grant_view' => $access['view'],
          'grant_update' => $access['update'],
          'grant_delete' => $access['delete'],
          'priority' => 0,
        ];
      }
    }
  }
  return $records;
}