mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 07:57:13 +02:00
E-mail changes initiated from console to registrar contacts
Also, fix misspelling of "recipient." ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=237857289
This commit is contained in:
parent
b0ad8b6a9b
commit
430c01b597
10 changed files with 112 additions and 43 deletions
|
@ -24,6 +24,7 @@ import google.registry.config.RegistryConfig.Config;
|
|||
import google.registry.util.SendEmailService;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Stream;
|
||||
import javax.inject.Inject;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.internet.AddressException;
|
||||
|
@ -55,22 +56,24 @@ public class SendEmailUtils {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sends an email from Nomulus to the registrarChangesNotificationEmailAddresses. Returns true iff
|
||||
* sending to at least 1 address was successful.
|
||||
* Sends an email from Nomulus to the registrarChangesNotificationEmailAddresses and the specified
|
||||
* additionalAddresses. Returns true iff sending to at least 1 address was successful.
|
||||
*
|
||||
* <p>This means that if there are no recepients ({@link #hasRecepients} returns false), this will
|
||||
* <p>This means that if there are no recipients ({@link #hasRecipients} returns false), this will
|
||||
* return false even thought no error happened.
|
||||
*
|
||||
* <p>This also means that if there are multiple recepients, it will return true even if some (but
|
||||
* not all) of the recepients had an error.
|
||||
* <p>This also means that if there are multiple recipients, it will return true even if some (but
|
||||
* not all) of the recipients had an error.
|
||||
*/
|
||||
public boolean sendEmail(final String subject, String body) {
|
||||
public boolean sendEmail(
|
||||
final String subject, String body, ImmutableList<String> additionalAddresses) {
|
||||
try {
|
||||
Message msg = emailService.createMessage();
|
||||
msg.setFrom(
|
||||
new InternetAddress(gSuiteOutgoingEmailAddress, gSuiteOutgoingEmailDisplayName));
|
||||
List<InternetAddress> emails =
|
||||
registrarChangesNotificationEmailAddresses.stream()
|
||||
Stream.concat(
|
||||
registrarChangesNotificationEmailAddresses.stream(), additionalAddresses.stream())
|
||||
.map(
|
||||
emailAddress -> {
|
||||
try {
|
||||
|
@ -101,11 +104,19 @@ public class SendEmailUtils {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether there are any recepients set up. {@link #sendEmail} will always return false if
|
||||
* there are no recepients.
|
||||
/** Sends an email from Nomulus to the registrarChangesNotificationEmailAddresses.
|
||||
*
|
||||
* <p>See {@link #sendEmail(String, String, ImmutableList<String>)}.
|
||||
*/
|
||||
public boolean hasRecepients() {
|
||||
public boolean sendEmail(final String subject, String body) {
|
||||
return sendEmail(subject, body, ImmutableList.of());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether there are any recipients set up. {@link #sendEmail} will always return false if
|
||||
* there are no recipients.
|
||||
*/
|
||||
public boolean hasRecipients() {
|
||||
return !registrarChangesNotificationEmailAddresses.isEmpty();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ public final class ConsoleOteSetupAction implements Runnable {
|
|||
|
||||
|
||||
private void sendExternalUpdates(ImmutableMap<String, String> clientIdToTld) {
|
||||
if (!sendEmailUtils.hasRecepients()) {
|
||||
if (!sendEmailUtils.hasRecipients()) {
|
||||
return;
|
||||
}
|
||||
String environment = Ascii.toLowerCase(String.valueOf(registryEnvironment));
|
||||
|
|
|
@ -347,7 +347,7 @@ public final class ConsoleRegistrarCreatorAction implements Runnable {
|
|||
return String.format(" %s: %s\n", name, value.orElse(null));
|
||||
}
|
||||
private void sendExternalUpdates() {
|
||||
if (!sendEmailUtils.hasRecepients()) {
|
||||
if (!sendEmailUtils.hasRecipients()) {
|
||||
return;
|
||||
}
|
||||
String environment = Ascii.toLowerCase(String.valueOf(registryEnvironment));
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
package google.registry.ui.server.registrar;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.ImmutableList.toImmutableList;
|
||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||
import static com.google.common.collect.Sets.difference;
|
||||
import static google.registry.export.sheet.SyncRegistrarsSheetAction.enqueueRegistrarSheetSync;
|
||||
|
@ -463,15 +464,15 @@ public class RegistrarSettingsAction implements Runnable, JsonActionRunner.JsonA
|
|||
|
||||
/**
|
||||
* Determines if any changes were made to the registrar besides the lastUpdateTime, and if so,
|
||||
* sends an email with a diff of the changes to the configured notification email address and
|
||||
* enqueues a task to re-sync the registrar sheet.
|
||||
* sends an email with a diff of the changes to the configured notification email address and all
|
||||
* contact addresses and enqueues a task to re-sync the registrar sheet.
|
||||
*/
|
||||
private void sendExternalUpdatesIfNecessary(
|
||||
Registrar existingRegistrar,
|
||||
ImmutableSet<RegistrarContact> existingContacts,
|
||||
Registrar updatedRegistrar,
|
||||
ImmutableSet<RegistrarContact> updatedContacts) {
|
||||
if (!sendEmailUtils.hasRecepients()) {
|
||||
if (!sendEmailUtils.hasRecipients() && existingContacts.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -498,7 +499,13 @@ public class RegistrarSettingsAction implements Runnable, JsonActionRunner.JsonA
|
|||
environment,
|
||||
existingRegistrar.getClientId(),
|
||||
authResult.userIdForLogging(),
|
||||
DiffUtils.prettyPrintDiffedMap(diffs, null)));
|
||||
DiffUtils.prettyPrintDiffedMap(diffs, null)),
|
||||
existingContacts.stream()
|
||||
.map(
|
||||
contact -> {
|
||||
return contact.getEmailAddress();
|
||||
})
|
||||
.collect(toImmutableList()));
|
||||
}
|
||||
|
||||
/** Thrown when a set of contacts doesn't meet certain constraints. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue