--- modules/og/contrib/og_mandatory_group/og_mandatory_group.module.orig	Thu Apr  6 05:02:49 2006
+++ modules/og/contrib/og_mandatory_group/og_mandatory_group.module	Tue May 16 18:59:17 2006
@@ -28,29 +28,29 @@ function og_mandatory_group_user($op, &$
         $from = variable_get('site_mail', ini_get('sendmail_from'));
         $headers = "From: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from";
 
-        $registered = array(0);
-        foreach ($edit['og_register'] as $key => $value) {
-          $registered[] = ($value ? $key : 0);
-        }
-        $result = db_query('SELECT n.nid, n.title, o.selective FROM {node} n INNER JOIN {og} o ON n.nid = o.nid WHERE n.nid IN (%s) ORDER BY n.title', implode(',', $registered));
         $groups = '';
-        while ($row = db_fetch_object($result)) {
-          switch ($row->selective) {
-            case OG_OPEN:
-              $groups .= check_plain($row->title) .' '. t('(open group)');
-              break;
-            case OG_MODERATED:
-              $groups .= check_plain($row->title) .' '. t('(moderated group)');
-              break;
-            case OG_INVITE_ONLY:
-              $groups .= check_plain($row->title) .' '. t('(invite only group)');
-              break;
-            case OG_CLOSED:
-              $groups .= check_plain($row->title) .' '. t('(closed group)');
-              break;
-          }
-          $groups .= "\n\t". url("node/$row->nid", NULL, NULL, TRUE) ."\n\n";
-        }
+	if ($edit['og_register']) {
+	  $result = db_query(db_rewrite_sql('SELECT n.nid, n.title, o.* FROM {node} n INNER JOIN {og} o ON n.nid = o.nid WHERE n.type IN ('. str_pad('', count(variable_get('og_node_types', array('og'))) * 5 - 1, "'%s',") .') AND n.status = 1 AND o.register = 1'), variable_get('og_node_types', array('og')));
+	  while ($row = db_fetch_object($result)) {
+	    if ($edit['og_register'][$row->nid]) {
+	      switch ($row->selective) {
+		case OG_OPEN:
+		  $groups .= check_plain($row->title) .' '. t('(open group)');
+		  break;
+		case OG_MODERATED:
+		  $groups .= check_plain($row->title) .' '. t('(moderated group)');
+		  break;
+		case OG_INVITE_ONLY:
+		  $groups .= check_plain($row->title) .' '. t('(invite only group)');
+		  break;
+		case OG_CLOSED:
+		  $groups .= check_plain($row->title) .' '. t('(closed group)');
+		  break;
+	      }
+	      $groups .= "\n\t". url("node/$row->nid", NULL, NULL, TRUE) ."\n\n";
+	    }
+	  }
+	}
         $sql = og_list_users_sql(1, 1);
         $result = db_query($sql, $group);
         while ($row = db_fetch_object($result)) {
@@ -59,7 +59,7 @@ function og_mandatory_group_user($op, &$
             if (strlen($groups)) {
               $body .= "\n". t('The user also subscribed to the following groups:') ."\n\n". $groups;
             }
-            if (user_access('administer users', $row)) {
+            if (user_access('administer users', user_load(array('uid' => $row->uid)))) {
               $body .= "\n". t('You may manage this user at %url', array('%url' => url("user/$account->uid/edit", NULL, NULL, TRUE)));
             }
             user_mail($row->mail, $subj, $body, $headers);
