You are here

function node_access_test_node_access_records in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/node/tests/modules/node_access_test/node_access_test.module \node_access_test_node_access_records()
  2. 7 modules/node/tests/node_access_test.module \node_access_test_node_access_records()
  3. 9 core/modules/node/tests/modules/node_access_test/node_access_test.module \node_access_test_node_access_records()

Implements hook_node_access_records().

By default, records are written for all nodes. When the 'node_access_test.private' state variable is set to TRUE, records are only written for nodes with a "private" property set, which causes the Node module to write the default global view grant for nodes that are not marked private.

See also

\Drupal\node\Tests\NodeAccessBaseTableTest::setUp()

node_access_test_node_grants()

node_access_test.permissions.yml

File

core/modules/node/tests/modules/node_access_test/node_access_test.module, line 79
Test module for testing the node access system.

Code

function node_access_test_node_access_records(NodeInterface $node) {
  $grants = [];

  // For NodeAccessBaseTableTestCase, only set records for private nodes.
  if (!\Drupal::state()
    ->get('node_access_test.private') || isset($node->private) && $node->private->value) {

    // Groups 8888 and 8889 for the node_access_test realm both receive a view
    // grant for all controlled nodes. See node_access_test_node_grants().
    $grants[] = [
      'realm' => 'node_access_test',
      'gid' => 8888,
      'grant_view' => 1,
      'grant_update' => 0,
      'grant_delete' => 0,
      'priority' => 0,
    ];
    $grants[] = [
      'realm' => 'node_access_test',
      'gid' => 8889,
      'grant_view' => 1,
      'grant_update' => 0,
      'grant_delete' => 0,
      'priority' => 0,
    ];

    // For the author realm, the group ID is equivalent to a user ID, which
    // means there are many groups of just 1 user.
    $grants[] = [
      'realm' => 'node_access_test_author',
      'gid' => $node
        ->getOwnerId(),
      'grant_view' => 1,
      'grant_update' => 1,
      'grant_delete' => 1,
      'priority' => 0,
    ];
  }
  return $grants;
}