You are here

function opigno_og_access_node_set_subscribe_permissions in Opigno 7

1 call to opigno_og_access_node_set_subscribe_permissions()
opigno_og_access_node_set_og_permissions in modules/opigno_og_access/opigno_og_access.module

File

modules/opigno_og_access/opigno_og_access.module, line 205
Enable access control for private and public groups and group content.

Code

function opigno_og_access_node_set_subscribe_permissions($entity) {
  $roles = og_roles("node", $entity->type, $entity->nid, FALSE, TRUE);

  //$role_names=array($roles);
  $role_permissions = og_role_permissions($roles);
  $og_permissions = og_get_permissions();
  foreach ($role_permissions as $rid => $permission) {
    $tosave = array();
    foreach ($og_permissions as $index => $value) {
      if (isset($role_permissions[$rid][$index]) && $role_permissions[$rid][$index] == TRUE) {
        $tosave[$index] = $index;
      }
      else {
        $tosave[$index] = 0;
      }
    }
    if ($entity->requires_validation[LANGUAGE_NONE][0]['value'] != 1) {
      $tosave['subscribe without approval'] = 'subscribe without approval';
    }
    else {
      $tosave['subscribe without approval'] = 0;
    }
    if ($entity->{OG_ACCESS_FIELD}[LANGUAGE_NONE][0]['value'] == 2) {
      $tosave['subscribe'] = 0;
      $tosave['subscribe without approval'] = 0;
    }
    else {
      $tosave['subscribe'] = 'subscribe';
    }
    og_role_change_permissions($rid, $tosave);
  }
}