public function OgUiSetRoles::prepareRow in Organic groups 7.2
Default implementation of prepareRow(). This method is called from the source plugin upon first pulling the raw data from the source.
Parameters
$row: Object containing raw source data.
Return value
bool TRUE to process this row, FALSE to have the source skip it.
Overrides Migration::prepareRow
File
- og_ui/includes/ migrate/ 7000/ set_roles.inc, line 49 
- Set permissions on group to upgrade group visibility.
Class
- OgUiSetRoles
- @file Set permissions on group to upgrade group visibility.
Code
public function prepareRow($row) {
  $anon_permissions = array();
  $auth_permissions = array(
    'unsubscribe' => TRUE,
  );
  switch ($row->og_selective) {
    // Open
    case 0:
      $anon_permissions = array(
        'subscribe' => FALSE,
        'subscribe without approval' => TRUE,
      );
      break;
    // Moderated.
    case 1:
      $anon_permissions = array(
        'subscribe' => TRUE,
        'subscribe without approval' => FALSE,
      );
      break;
    // Invite only.
    case 2:
      $anon_permissions = array(
        'subscribe' => FALSE,
        'subscribe without approval' => FALSE,
      );
      break;
    // Closed.
    case 3:
      $anon_permissions = array(
        'subscribe' => FALSE,
        'subscribe without approval' => FALSE,
      );
      $auth_permissions = array(
        'unsubscribe' => FALSE,
      );
      break;
  }
  $og_roles = og_roles('node', $row->type, $row->nid);
  $permissions = og_role_permissions($og_roles);
  $anon_rid = array_search(OG_ANONYMOUS_ROLE, $og_roles);
  $auth_rid = array_search(OG_AUTHENTICATED_ROLE, $og_roles);
  // Set the new permissions.
  og_role_change_permissions($anon_rid, $anon_permissions);
  og_role_change_permissions($auth_rid, $auth_permissions);
  // We don't need to really save the node, but if we return FALSE,
  // then the row is not counted as imported.
  return TRUE;
}