Index: og_promote.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/og_promote/og_promote.module,v
retrieving revision 1.3
diff -u -r1.3 og_promote.module
--- og_promote.module	4 Mar 2006 19:11:15 -0000	1.3
+++ og_promote.module	28 Sep 2006 18:51:26 -0000
@@ -22,36 +22,38 @@
  * @param $args associative array containing details about the subscription
  */
 function og_promote_og($op, $nid, $uid, $args) {
-  if (($role_id = variable_get('og_promote_role', 0)) != 0) {
-    switch ($op) {
-      case 'user insert':
-      case 'user update':
-        if ($args['is_active']) {
-          $user = user_load(array('uid' => $uid));
-          if (!in_array($role_id, array_keys($user->roles))) {
-            $edit = array();
-            $edit['roles'] = $user->roles;
-            $edit['roles'][$role_id] = '';
-            user_save($user, $edit);
+  if ($nid != 0) {
+    if (($role_id = variable_get('og_promote_role', 0)) != 0) {
+      switch ($op) {
+        case 'user insert':
+        case 'user update':
+          if ($args['is_active']) {
+            $user = user_load(array('uid' => $uid));
+            if (!in_array($role_id, array_keys($user->roles))) {
+              $edit = array();
+              $edit['roles'] = $user->roles;
+              $edit['roles'][$role_id] = '';
+              user_save($user, $edit);
+            }
           }
-        }
-        break;
-      case 'user delete':
-        $groups = variable_get('og_promote_groups', array());
-        $user_groups = array_keys(og_get_subscriptions($uid));
-        // check that the user isn't in any of the other groups.
-        if (in_array($nid, $groups) && !count(array_intersect(array_diff($groups, array(0)), array_diff($user_groups, array($nid))))) {
-          $user = user_load(array('uid' => $uid));
-          $edit = array();
-          $edit['roles'] = array();
-          foreach ($user->roles as $key => $value) {
-            if ($key != $role_id) {
-              $edit['roles'][$key] = $value;
+          break;
+        case 'user delete':
+          $groups = variable_get('og_promote_groups', array());
+          $user_groups = array_keys(og_get_subscriptions($uid));
+          // check that the user isn't in any of the other groups.
+          if (in_array($nid, $groups) && !count(array_intersect(array_diff($groups, array(0)), array_diff($user_groups, array($nid))))) {
+            $user = user_load(array('uid' => $uid));
+            $edit = array();
+            $edit['roles'] = array();
+            foreach ($user->roles as $key => $value) {
+              if ($key != $role_id) {
+                $edit['roles'][$key] = $value;
+              }
             }
+            user_save($user, $edit);
           }
-          user_save($user, $edit);
-        }
-        break;
+          break;
+      }
     }
   }
 }
