function permissions_by_term_views_post_execute in Permissions by Term 7
Implements hook_views_post_execute().
Hides nodes in every view on the site.
File
- ./
permissions_by_term.module, line 278 - Allows access to terms in a vocabulary to be limited by user or role.
Code
function permissions_by_term_views_post_execute(&$view) {
global $user;
$view_contains_nodes = FALSE;
foreach ($view->result as $view_result) {
if (array_key_exists('nid', $view_result) === TRUE) {
$view_contains_nodes = TRUE;
}
}
if ($view_contains_nodes === TRUE) {
$arr__nodes_to_hide_in_view = array();
foreach ($view->result as $v) {
$node = node_load($v->nid);
$secured_areas = field_get_items('node', $node, 'field_secured_areas');
if (!empty($secured_areas)) {
foreach ($secured_areas as $term) {
if (isset($term['tid']) && !permissions_by_term_allowed($term['tid'], $user)) {
$arr__nodes_to_hide_in_view[] = $node->nid;
}
}
}
}
$arr__new_results = array();
// Hide the nodes.
foreach ($view->result as $v) {
if (!in_array($v->nid, $arr__nodes_to_hide_in_view)) {
$arr__new_results[] = $v;
}
}
$view->result = $arr__new_results;
}
}