diff --git a/modules/og_actions/og_actions.module b/modules/og_actions/og_actions.module index 0bc1345..c9bd7f6 100755 --- a/modules/og_actions/og_actions.module +++ b/modules/og_actions/og_actions.module @@ -229,10 +229,17 @@ function og_remove_group_action_submit($form, &$form_state) { */ function og_subscribe_user_action($account, $context) { if (isset($context['groups'])) { + $groups = array(); foreach ($context['groups'] as $gid) { - og_save_subscription($gid, $account->uid, array('is_active' => 1)); + // Add user if they are not already an active member. + if (empty($account->og_groups[$gid])) { + og_save_subscription($gid, $account->uid, array('is_active' => 1)); + $groups[] = $gid; + } + } + if ($groups) { + watchdog('action', 'Subscribed user %name to groups %groups.', array('%name' => $account->name, '%groups' => implode(',', $groups))); } - watchdog('action', 'Subscribed user %name to groups %groups.', array('%name' => $account->name, '%groups' => implode(',', $context['groups']))); } }