You are here

function simple_access_node_access_records in Simple Access 7.2

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

Implements hook_node_access_records().

File

./simple_access.module, line 291
This module allows administrators to make nodes viewable by specific 'access groups'. Each access group can contain any number of roles. If a node is not assigned to any access groups, it will remain viewable by all users.

Code

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

    // Loop through simple_access arrays from page submission
    // $type is either 'view', 'update', or 'delete'.
    foreach ($node->simple_access as $gid => $access) {
      if ($access['sa_view'] || $access['sa_update'] || $access['sa_delete']) {
        $records[] = array(
          'realm' => 'simple_access',
          'gid' => $gid,
          'grant_view' => $access['sa_view'],
          'grant_update' => $access['sa_update'],
          'grant_delete' => $access['sa_delete'],
          'priority' => 0,
        );
      }
    }
  }
  if (isset($node->simple_access_owner)) {
    $node->simple_access_owner += array(
      'sa_view' => NULL,
      'sa_update' => NULL,
      'sa_delete' => NULL,
    );
  }
  if ($node->uid && isset($node->simple_access_owner) && ($node->simple_access_owner['sa_view'] || $node->simple_access_owner['sa_update'] || $node->simple_access_owner['sa_delete'])) {
    $records[] = array(
      'realm' => 'simple_access_author',
      'gid' => $node->uid,
      'grant_view' => $node->simple_access_owner['sa_view'],
      'grant_update' => $node->simple_access_owner['sa_update'],
      'grant_delete' => $node->simple_access_owner['sa_delete'],
      'priority' => 0,
    );
  }
  return $records;
}