You are here

function simple_access_node_access_records in Simple Access 5

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. 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 159
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) {

    // loop through simple_access arrays from page submission
    // $type is either 'view', 'update', or 'delete'
    foreach ($node->simple_access as $gid => $access) {
      if ($access['view'] || $access['update'] || $access['delete']) {
        $records[] = array(
          'realm' => 'simple_access',
          'gid' => $gid,
          'grant_view' => $access['view'],
          'grant_update' => $access['update'],
          'grant_delete' => $access['delete'],
          'priority' => 1,
        );
      }
    }
  }
  if (!empty($records) && $node->uid) {

    // FIXME: Need to work out a better method of determining the authors
    // access to the node.
    $records[] = array(
      'realm' => 'simple_access_author',
      'gid' => $node->uid,
      'grant_view' => user_access('access content'),
      'grant_update' => user_access('access content'),
      'grant_delete' => user_access('access content'),
      'priority' => 1,
    );
  }
  return $records;
}