function views_node_access_filter_node_access_records_alter in Views Node Access Filter 8
Implements hook_node_access_records_alter().
File
- ./
views_node_access_filter.access_records.inc, line 96 - Node access hooks.
Code
function views_node_access_filter_node_access_records_alter(&$grants, NodeInterface $node) {
// As soon as there is at least one record for a node, Drupal core does not
// handle default view access on its side.
// @see NodeAccessControlHandler::acquireGrants()
// But our module doesn't want to alter default view access, so, if no other
// module defines records, we mimic the default core behavior.
if (!_views_node_access_filter_external_grants_are_defined($grants, $node)) {
if ($node
->isPublished()) {
$grants[] = [
'realm' => 'all',
'gid' => 0,
'grant_view' => 1,
'grant_update' => 0,
'grant_delete' => 0,
];
}
elseif ($owner_id = $node
->getOwnerId()) {
$grants[] = [
'realm' => 'view own unpublished content',
'gid' => $owner_id,
'grant_view' => 1,
'grant_update' => 0,
'grant_delete' => 0,
];
}
}
}