function node_privacy_byrole_node_access_records in node privacy byrole 6
Same name and namespace in other branches
- 5 node_privacy_byrole.module \node_privacy_byrole_node_access_records()
Implementation of hook_node_access_records().
File
- ./
node_privacy_byrole.module, line 64 - Set node access permissions by role.
Code
function node_privacy_byrole_node_access_records($node) {
if (node_privacy_byrole_disabling()) {
return;
}
node_privacy_byrole_nodeapi_prepare($node);
$grants = array();
$user_edit_perm = empty($node->node_privacy_byrole['author']['edit']) ? 0 : 1;
$user_delete_perm = empty($node->node_privacy_byrole['author']['delete']) ? 0 : 1;
$user_view_perm = $user_edit_perm || $user_delete_perm ? 1 : (empty($node->node_privacy_byrole['author']['view']) ? 0 : 1);
// permission for node owner
if ($node->uid > 0) {
$grants[] = array(
'realm' => 'node_privacy_byrole_user',
'gid' => $node->uid,
'grant_view' => $user_view_perm,
'grant_update' => $user_edit_perm,
'grant_delete' => $user_delete_perm,
'priority' => 0,
);
}
// permission for node roles
foreach (array_keys(user_roles()) as $rid) {
$edit_perm = $node->node_privacy_byrole['roles'][$rid]['edit'] ? 1 : 0;
$delete_perm = $node->node_privacy_byrole['roles'][$rid]['delete'] ? 1 : 0;
$view_perm = $edit_perm || $delete_perm ? 1 : $node->node_privacy_byrole['roles'][$rid]['view'];
$grants[] = array(
'realm' => 'node_privacy_byrole_role',
'gid' => $rid,
'grant_view' => $view_perm,
'grant_update' => $edit_perm,
'grant_delete' => $delete_perm,
'priority' => 0,
);
}
return $grants;
}