function simple_access_node_load in Simple Access 7.2
Same name and namespace in other branches
- 8.3 simple_access.module \simple_access_node_load()
Implements hook_node_load().
File
- ./
simple_access.module, line 162 - This module allows administrators to make nodes viewable by specific 'access groups'. Each access group can contain any number of roles. If a node is not assigned to any access groups, it will remain viewable by all users.
Code
function simple_access_node_load($nodes, $types) {
$nids = array();
foreach ($nodes as $nid => $node) {
$nids[] = $nid;
$node->simple_access = array();
$node->simple_access_profiles = array();
}
$owners = db_select('simple_access_owner', 'o')
->fields('o', array(
'nid',
'sa_view',
'sa_update',
'sa_delete',
))
->condition('nid', $nids)
->execute()
->fetchAllAssoc('nid', PDO::FETCH_ASSOC);
$access = db_select('simple_access_node', 'na')
->fields('na', array(
'nid',
'gid',
'sa_view',
'sa_update',
'sa_delete',
))
->condition('nid', $nids)
->execute()
->fetchAll(PDO::FETCH_ASSOC);
$profiles = db_select('simple_access_profiles_node', 'pn')
->fields('pn', array(
'nid',
'pid',
))
->condition('nid', $nids)
->execute()
->fetchAll(PDO::FETCH_ASSOC);
foreach ($nodes as $nid => $node) {
if (isset($owners[$nid])) {
$node->simple_access_owner = $owners[$nid];
}
else {
$node->simple_access_owner = array(
'sa_view' => 0,
'sa_update' => 0,
'sa_delete' => 0,
);
}
}
foreach ($access as $row) {
$nodes[$row['nid']]->simple_access[$row['gid']] = $row;
}
foreach ($profiles as $row) {
$nodes[$row['nid']]->simple_access_profiles[$row['pid']] = $row['pid'];
}
}