function oa_clone_batch_clone_group_metadata in Open Atrium Clone 7.2
Callback for cloning Organic Groups metadata (variables, permisssions, etc).
Parameters
object $node: Node object representing the Space or Group that we are going to configure.
int $original_nid: The node ID of the original Space or Group we are cloning metadata from.
array &$context: A place where we can store values that need to b passed from one iteration of this batch operation to the next.
2 string references to 'oa_clone_batch_clone_group_metadata'
- oa_clone_node_insert in ./oa_clone.module 
- Implements hook_node_insert().
- _oa_clone_batch_space in ./oa_clone.module 
- Recursively clone a Space while setting up a batch for cloning content.
File
- ./oa_clone.module, line 956 
Code
function oa_clone_batch_clone_group_metadata($node, $original_nid, &$context) {
  // Clone OG variables.
  foreach (variable_store_list_all('og', 'node_' . $original_nid) as $name) {
    variable_realm_set('og', 'node_' . $node->nid, $name, variable_realm_get('og', 'node_' . $original_nid, $name));
  }
  // Clone OG roles.
  $original_role_map = array();
  $original_roles = og_roles('node', $node->type, $original_nid);
  foreach ($original_roles as $original_rid => $original_name) {
    $original_role_map[$original_name] = $original_rid;
    // If this is a custom role, then we have to create it.
    if (!in_array($original_name, array(
      OG_ANONYMOUS_ROLE,
      OG_AUTHENTICATED_ROLE,
      OG_ADMINISTRATOR_ROLE,
    ))) {
      $role = og_role_create($original_name, 'node', $node->nid, $node->type);
      og_role_save($role);
    }
  }
  // Clone OG permissions.
  $permissions = og_role_permissions($original_roles);
  foreach (og_roles('node', $node->type, $node->nid) as $rid => $name) {
    // Only clone custom permissions.
    if ($rid != $original_role_map[$name]) {
      og_role_change_permissions($rid, $permissions[$original_role_map[$name]]);
    }
  }
  // Allow other modules to copy group metadata too.
  module_invoke_all('oa_clone_group_metadata', $node, $original_nid);
}