function nodeaccess_userreference_node_access_records in Node access user reference 7.2
Same name and namespace in other branches
- 5.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
- 5 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
- 6.3 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
- 6 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
- 6.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
- 7.3 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
Implements hook_node_access_records().
File
- ./
nodeaccess_userreference.module, line 137 - The Node access user reference module.
Code
function nodeaccess_userreference_node_access_records($node) {
$grants = array();
$bundles = field_info_instances('node');
$priority = variable_get('nodeaccess_userreference_priority', 0);
foreach ($bundles as $fields) {
foreach ($fields as $field) {
if ($field['widget']['module'] == 'user_reference') {
$data = nodeaccess_userreference_field_settings($field['field_name']);
if (!empty($data) && !empty($node->{$field}['field_name'])) {
foreach ((array) $node->{$field}['field_name'] as $language) {
foreach ($language as $userreference) {
if ($userreference['uid']) {
$uid =& $userreference['uid'];
$grants[] = array(
'realm' => 'nodeaccess_userreference',
'gid' => $uid,
'priority' => $priority,
'grant_view' => $data['view'],
'grant_update' => $data['update'],
'grant_delete' => $data['delete'],
);
}
}
}
}
}
}
}
if (!empty($grants)) {
// Store author grants according to configuration.
$grant_view = variable_get('nodeaccess_userreference_author_view', 1);
$grant_update = variable_get('nodeaccess_userreference_author_update', 1);
$grant_delete = variable_get('nodeaccess_userreference_author_delete', 1);
if ($grant_view || $grant_update || $grant_delete) {
$grants[] = array(
'realm' => 'nodeaccess_userreference_author',
'gid' => $node->uid,
'priority' => $priority,
'grant_view' => $grant_view,
'grant_update' => $grant_update,
'grant_delete' => $grant_delete,
);
}
return $grants;
}
return NULL;
}