function _oa_core_update_access_records_batch in Open Atrium Core 7.2
Batch for updating node access records.
Parameters
array $subgroup_nids: Nids for all subgroups of the node being updated.
array $context: Carried over between batches.
1 string reference to '_oa_core_update_access_records_batch'
- _oa_core_update_access_records_batch_prepare in includes/
oa_core.access.inc - Set up the batch process to update node records.
File
- includes/
oa_core.access.inc, line 314 - Code for Access Control functions for OpenAtrium spaces
Code
function _oa_core_update_access_records_batch($subgroup_nids, &$context) {
if (empty($context['sandbox']['nids'])) {
$context['sandbox']['nids'] = $subgroup_nids;
// These are nids returned from oa_core_get_groups_by_parent().
foreach ($subgroup_nids as $nid) {
// Get membership nids using the og_group_ref field.
$membership_nids = oa_core_get_membership_nodes($nid);
// Merge the results.
$new_array = array_merge($context['sandbox']['nids'], $membership_nids);
// Update the sandbox.
$context['sandbox']['nids'] = $new_array;
}
$context['results'] = count($context['sandbox']['nids']);
}
// Number of nodes updated per pass.
$records_per_pass = 25;
// Define the records to run for this pass.
$current_records = array_splice($context['sandbox']['nids'], 0, $records_per_pass);
// Update the node access records for this pass.
oa_core_update_access_records($current_records);
// We are done when the sandbox nids array is empty.
$context['finished'] = empty($context['sandbox']['nids']) ? 1 : 0;
}