function nodeaccess_userreference_node_access_records in Node access user reference 5
Same name and namespace in other branches
- 5.2 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()
- 7.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
Implementation of hook_node_access_records().
File
- ./
nodeaccess_userreference.module, line 126
Code
function nodeaccess_userreference_node_access_records($node) {
if (nodeaccess_userreference_disabling()) {
return;
}
$grants = array();
$info = content_fields(NULL, $node->type);
$priority = variable_get('nodeaccess_userreference_priority', 0);
if (is_array($info)) {
foreach ($info as $field) {
if ($field['type'] == 'userreference') {
$variable = 'nodeaccess_userreference_' . $field['field_name'] . '_' . $field['type_name'];
$data = variable_get($variable, array(
'view' => 0,
'update' => 0,
'delete' => 0,
));
if (($data['view'] || $data['update'] || $data['delete']) && is_array($node->{$field}['field_name'])) {
foreach ($node->{$field}['field_name'] as $userreference) {
$uid =& $userreference['uid'];
$grants[$uid] = array(
'realm' => 'nodeaccess_userreference',
'gid' => $uid,
'priority' => $priority,
);
if ($data['view']) {
$grants[$uid]['grant_view'] = 1;
}
if ($data['update']) {
$grants[$uid]['grant_update'] = 1;
}
if ($data['delete']) {
$grants[$uid]['grant_delete'] = 1;
}
}
}
}
}
}
if (!empty($grants)) {
return $grants;
}
return null;
}