function nodeaccess_userreference_add_grant in Node access user reference 6.3
Same name and namespace in other branches
- 7.3 nodeaccess_userreference.module \nodeaccess_userreference_add_grant()
Add node grants in a way that prevents overriding previous iterations.
Parameters
&$grants: The grants array where the grant will be added.
$realm: The realm of this grant.
$gid: The grant ID.
$priority: The grant priority.
$settings: An settings array of boolean equivalent values with keys 'view', 'edit', and 'delete'.
1 call to nodeaccess_userreference_add_grant()
- nodeaccess_userreference_node_access_records in ./
nodeaccess_userreference.module - Implementation of hook_node_access_records().
File
- ./
nodeaccess_userreference.module, line 104
Code
function nodeaccess_userreference_add_grant(&$grants, $realm, $gid, $priority, $settings) {
if (empty($settings['view']) && empty($settings['update']) && empty($settings['delete'])) {
return;
}
$key = $realm . $gid;
if (!isset($grants[$key])) {
// Setup the record.
$grants[$key] = array(
'realm' => $realm,
'gid' => $gid,
'priority' => $priority,
'grant_view' => 0,
'grant_update' => 0,
'grant_delete' => 0,
);
}
// Add the grants needed, so as not to override previous iterations.
if ($settings['view']) {
$grants[$key]['grant_view'] = 1;
}
if ($settings['update']) {
$grants[$key]['grant_update'] = 1;
}
if ($settings['delete']) {
$grants[$key]['grant_delete'] = 1;
}
// Increase the priority if needed.
if ($priority > $grants[$key]['priority']) {
$grants[$key]['priority'] = $priority;
}
}