Skip to content

Commit

Permalink
email notification DAT-608
Browse files Browse the repository at this point in the history
  • Loading branch information
JayanthyChengan committed Jul 10, 2024
1 parent 549b638 commit 01ee4ff
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 7 deletions.
13 changes: 10 additions & 3 deletions src/main/java/edu/harvard/iq/dataverse/MailServiceBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ public class MailServiceBean implements java.io.Serializable {
@EJB
ConfirmEmailServiceBean confirmEmailService;

// @Inject
// DataverseSession dvsession;

private static final Logger logger = Logger.getLogger(MailServiceBean.class.getCanonicalName());

private static final String charset = "UTF-8";
Expand Down Expand Up @@ -117,7 +120,8 @@ public boolean sendSystemEmail(String to, String subject, String messageText, bo
return false;
}
InternetAddress systemAddress = optionalAddress.get();

//JC getStringFromBundle(String key, List<String> arguments, Locale locale)
// String localeCode = dvsession.getLocaleCode();
String body = messageText +
BundleUtil.getStringFromBundle(isHtmlContent ? "notification.email.closing.html" : "notification.email.closing",
List.of(BrandingUtil.getSupportTeamEmailAddress(systemAddress), BrandingUtil.getSupportTeamName(systemAddress)));
Expand Down Expand Up @@ -386,6 +390,8 @@ public String getMessageTextBasedOnNotification(UserNotification userNotificatio
String dvObjURL;
String dvObjTypeStr;
String pattern;
//String localeCode = dvsession.getLocaleCode();
//logger.info(" JC TESTING localecode in mailservicebean = "+ localeCode );

switch (userNotification.getType()) {
case ASSIGNROLE:
Expand Down Expand Up @@ -512,7 +518,8 @@ public String getMessageTextBasedOnNotification(UserNotification userNotificatio
return messageText;
case PUBLISHEDDS:
version = (DatasetVersion) targetObject;
pattern = BundleUtil.getStringFromBundle("notification.email.wasPublished");
//jc
pattern = BundleUtil.getStringFromBundle("notification.email.wasPublished");//, new Locale(localeCode));
String[] paramArrayPublishedDataset = {version.getDataset().getDisplayName(), getDatasetLink(version.getDataset()),
version.getDataset().getOwner().getDisplayName(), getDataverseLink(version.getDataset().getOwner())};
messageText += MessageFormat.format(pattern, paramArrayPublishedDataset);
Expand Down Expand Up @@ -659,7 +666,7 @@ public String getMessageTextBasedOnNotification(UserNotification userNotificatio
userNotification.getUser().getFirstName(), userNotification.getUser().getFirstName() ));
return message;

case INGESTCOMPLETED:
case INGESTCOMPLETED: // JC
dataset = (Dataset) targetObject;
messageText = BundleUtil.getStringFromBundle("notification.email.greeting.html");
String ingestedCompletedMessage = messageText + BundleUtil.getStringFromBundle("notification.ingest.completed", Arrays.asList(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -689,6 +689,7 @@ public static String getLocalizedLicenseDetails(License license,String keyPart)
}

public static String getLocaleExternalStatus(String status) {
//JC
String localizedName = "" ;
try {
localizedName = BundleUtil.getStringFromPropertyFile(status.toLowerCase().replace(" ", "_"), "CurationLabels");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ public boolean onSuccess(CommandContext ctxt, Object r) {

try {
// Success! - send notification:
//JC
notifyUsersDatasetPublishStatus(ctxt, dataset, UserNotification.Type.PUBLISHEDDS);
} catch (Exception e) {
logger.warning("Failure to send dataset published messages for : " + dataset.getId() + " : " + e.getMessage());
Expand Down Expand Up @@ -478,7 +479,22 @@ private void notifyUsersFileDownload(CommandContext ctxt, DvObject subject) {
}

private void notifyUsersDatasetPublishStatus(CommandContext ctxt, DvObject subject, UserNotification.Type type) {

//JC
/*
Set<RoleAssignment> roleAssignments = ctxt.roles().rolesAssignments(subject);
for (RoleAssignment roleAssignment : roleAssignments) {
logger.fine("JC TESTING role assignment on dvObject " + subject.getId() + ": " + roleAssignment.getAssigneeIdentifier());
if (roleAssignment.getRole().permissions().contains(Permission.ViewUnpublishedDataset) ||
roleAssignment.getRole().permissions().contains(Permission.DownloadFile))
{
for (AuthenticatedUser au : ctxt.roleAssignees().getExplicitUsers(ctxt.roleAssignees().getRoleAssignee(roleAssignment.getAssigneeIdentifier())))
{
//ctxt.notifications().sendNotification(au, getTimestamp(), type, getDataset().getLatestVersion().getId());
ctxt.notifications().sendNotificationInNewTransaction(au, getTimestamp(), type, getDataset().getLatestVersion().getId());
}
}
}
*/
ctxt.roles().rolesAssignments(subject).stream()
.filter( ra -> ra.getRole().permissions().contains(Permission.ViewUnpublishedDataset) || ra.getRole().permissions().contains(Permission.DownloadFile))
.flatMap( ra -> ctxt.roleAssignees().getExplicitUsers(ctxt.roleAssignees().getRoleAssignee(ra.getAssigneeIdentifier())).stream() )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Finally send a notification to the remaining (non-reviewing) authors - Hey! your
List<AuthenticatedUser> reviewers = ctxt.permissions().getUsersWithPermissionOn(Permission.PublishDataset, savedDataset);
List<AuthenticatedUser> authors = ctxt.permissions().getUsersWithPermissionOn(Permission.EditDataset, savedDataset);
authors.removeAll(reviewers);
for (AuthenticatedUser au : authors) {
for (AuthenticatedUser au : authors) { //JC
ctxt.notifications().sendNotification(au, getTimestamp(), UserNotification.Type.RETURNEDDS, savedDataset.getLatestVersion().getId(), comment);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public void onMessage(Message message) {
}

sbIngestedFiles.append("</ul>");

//JC
userNotificationService.sendNotification(
authenticatedUser,
Timestamp.from(Instant.now()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ private static ClassLoader getClassLoader(String filesRootDirectory) {
return loader;
}

public static Locale getCurrentLocale() {
public static Locale getCurrentLocale() { // JC
if (FacesContext.getCurrentInstance() == null) {
String localeEnvVar = System.getenv().get("LANG");
if (localeEnvVar != null) {
Expand Down

0 comments on commit 01ee4ff

Please sign in to comment.