You are here

function simple_access_node_access_records in Simple Access 5.2

Same name and namespace in other branches
  1. 8.3 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()

Implementation of hook_node_access_records

File

./simple_access.module, line 249
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 ($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' => 1,
      );
    }
  }
  if ($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' => 1,
        );
      }
    }
  }
  if ($node->uid && ($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' => 1,
    );
  }
  return $records;
}