Loading ginvite.module +49 −31 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ use Drupal\ginvite\Plugin\GroupContentEnabler\GroupInvitation; use Drupal\group\Access\GroupAccessResult; use Drupal\group\Entity\GroupContentInterface; use Drupal\group\Entity\GroupInterface; use Drupal\user\Entity\User; use Drupal\user\UserInterface; /** Loading Loading @@ -80,7 +81,22 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { if ($type == 'group_invitation') { $mail = $group_content->get('invitee_mail')->getString(); $mailManager = \Drupal::service('plugin.manager.mail'); // If invited user has no mail, don't try to send one. if (empty($mail)) { // "Invitee mail" can be hidden. // More info: https://www.drupal.org/project/ginvite/issues/3206103 // Try to get user from "Invitee" field. $uid = $group_content->get('entity_id')->getString(); // We want to be sure user exists. if (!empty($uid) && ($invitee = User::load($uid))) { $messenger->addMessage(t('Invite sent to %username', ['%username' => $invitee->getDisplayName()])); $group_content->set('invitation_status', GroupInvitation::INVITATION_PENDING); $group_content->save(); } } else { $mail_manager = \Drupal::service('plugin.manager.mail'); $from = $group_content->getEntity(); $group = $group_content->getGroup(); $params = [ Loading @@ -92,16 +108,17 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { $langcode = $from->getPreferredLangcode(); // Load plugin configuration. $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler')->getInstalled($group->getGroupType()); $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler') ->getInstalled($group->getGroupType()); $group_invite_config = $group_plugin_collection->getConfiguration()['group_invitation']; if ($invitee = user_load_by_mail($mail)) { $group_content->set('entity_id', $invitee); // Check if we should send a email to existing user. // Check if we should send an email to existing user. if ($group_invite_config['send_email_existing_users']) { $params['existing_user'] = TRUE; $mailManager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $mail_manager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $messenger->addMessage(t('Invite sent to %invitee', ['%invitee' => $invitee->getDisplayName()])); } else { Loading @@ -109,13 +126,14 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { } } else { $mailManager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $mail_manager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $messenger->addMessage(t('Invite sent to %mail', ['%mail' => $mail])); } $group_content->set('invitation_status', GroupInvitation::INVITATION_PENDING); $group_content->save(); } } // If new membership is created, check related invitation exists. elseif ($type == 'group_membership') { $properties = [ Loading Loading
ginvite.module +49 −31 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ use Drupal\ginvite\Plugin\GroupContentEnabler\GroupInvitation; use Drupal\group\Access\GroupAccessResult; use Drupal\group\Entity\GroupContentInterface; use Drupal\group\Entity\GroupInterface; use Drupal\user\Entity\User; use Drupal\user\UserInterface; /** Loading Loading @@ -80,7 +81,22 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { if ($type == 'group_invitation') { $mail = $group_content->get('invitee_mail')->getString(); $mailManager = \Drupal::service('plugin.manager.mail'); // If invited user has no mail, don't try to send one. if (empty($mail)) { // "Invitee mail" can be hidden. // More info: https://www.drupal.org/project/ginvite/issues/3206103 // Try to get user from "Invitee" field. $uid = $group_content->get('entity_id')->getString(); // We want to be sure user exists. if (!empty($uid) && ($invitee = User::load($uid))) { $messenger->addMessage(t('Invite sent to %username', ['%username' => $invitee->getDisplayName()])); $group_content->set('invitation_status', GroupInvitation::INVITATION_PENDING); $group_content->save(); } } else { $mail_manager = \Drupal::service('plugin.manager.mail'); $from = $group_content->getEntity(); $group = $group_content->getGroup(); $params = [ Loading @@ -92,16 +108,17 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { $langcode = $from->getPreferredLangcode(); // Load plugin configuration. $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler')->getInstalled($group->getGroupType()); $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler') ->getInstalled($group->getGroupType()); $group_invite_config = $group_plugin_collection->getConfiguration()['group_invitation']; if ($invitee = user_load_by_mail($mail)) { $group_content->set('entity_id', $invitee); // Check if we should send a email to existing user. // Check if we should send an email to existing user. if ($group_invite_config['send_email_existing_users']) { $params['existing_user'] = TRUE; $mailManager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $mail_manager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $messenger->addMessage(t('Invite sent to %invitee', ['%invitee' => $invitee->getDisplayName()])); } else { Loading @@ -109,13 +126,14 @@ function ginvite_group_content_insert(GroupContentInterface $group_content) { } } else { $mailManager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $mail_manager->mail('ginvite', 'invite', $mail, $langcode, $params, NULL, TRUE); $messenger->addMessage(t('Invite sent to %mail', ['%mail' => $mail])); } $group_content->set('invitation_status', GroupInvitation::INVITATION_PENDING); $group_content->save(); } } // If new membership is created, check related invitation exists. elseif ($type == 'group_membership') { $properties = [ Loading