diff -urp old/og_vocab.module new/og_vocab.module --- old/og_vocab.module 2008-08-05 16:18:38.000000000 +0300 +++ new/og_vocab.module 2008-08-31 16:18:35.703125000 +0300 @@ -223,7 +223,16 @@ function og_vocab_form_alter(&$form, $fo case (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id): if (isset($form['taxonomy'])) { // remove from node form those vocabs that belong to groups other than us (if we even have a group) - $groupnode = og_get_group_context(); + $groupnode = og_get_group_context(); + // If user is a member of only a single group and audience is required + // then we pass the single group. + if (!$groupnode && variable_get('og_audience_required', 0) == 1) { + global $user; + if (count($user->og_groups) == 1) { + $current = current($user->og_groups); + $groupnode = node_load($current['nid']); + } + } $where = "(v.module = 'og_vocab' AND ov.nid != %d)"; $sql = "SELECT v.vid, v.tags FROM {vocabulary} v LEFT JOIN {og_vocab} ov ON v.vid = ov.vid WHERE $where"; $result = db_query($sql, $groupnode->nid);