diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 78e0b29..0fc0684 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,18 +1,27 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index fc8c4f5..c13dcc7 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ org.gcube.portal.mailing email-templates-library - [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + [1.5.0-SNAPSHOT,2.0.0-SNAPSHOT) diff --git a/src/main/java/gr/cite/bluebridge/portlets/admin/usersmanagementportlet/UsersManagementPortletHome.java b/src/main/java/gr/cite/bluebridge/portlets/admin/usersmanagementportlet/UsersManagementPortletHome.java index 662f963..e3c0fd9 100644 --- a/src/main/java/gr/cite/bluebridge/portlets/admin/usersmanagementportlet/UsersManagementPortletHome.java +++ b/src/main/java/gr/cite/bluebridge/portlets/admin/usersmanagementportlet/UsersManagementPortletHome.java @@ -27,6 +27,8 @@ import org.gcube.portal.mailing.message.EmailAddress; import org.gcube.portal.mailing.message.Recipient; import org.gcube.portal.mailing.message.RecipientType; import org.gcube.portal.mailing.service.EmailTemplateService; +import org.gcube.portal.mailing.templates.TemplateManagerHasAssignedRoles; +import org.gcube.portal.mailing.templates.TemplateManagerHasRevokedRoles; import org.gcube.portal.mailing.templates.TemplateUserApprovedRequestVRE; import org.gcube.portal.mailing.templates.TemplateUserHasBeenUnregisteredVRE; import org.gcube.portal.mailing.templates.TemplateUserRejectedRequestVRE; @@ -1457,29 +1459,49 @@ public class UsersManagementPortletHome extends GenericPortlet { * @throws UserManagementSystemException * @throws GroupRetrievalFault */ - public void notifyUsersByEmailOnRoleAssignment(long groupId, GCubeUser userToReceiveTheMail, GCubeUser manager, GCubeGroup group, List newRoles, HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault { + public void notifyUsersByEmailOnRoleAssignment( + long groupId, GCubeUser userToReceiveTheMail, + GCubeUser manager, GCubeGroup group, List newRoles, + HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault { _log.debug("Notifying user by email on role assignment for user: " + userToReceiveTheMail.getUsername() + " for context name: " + group.getGroupName() ); - ArrayList managersEmails = getVREManagersEmailsForGroup(groupId); - - int recSize = managersEmails.size() + 1; - Recipient[] recs = new Recipient[recSize]; - recs[0] = new Recipient(new EmailAddress(userToReceiveTheMail.getEmail()), RecipientType.TO); - if (!managersEmails.isEmpty()) { - int i = 1; - for (String mEmail : managersEmails){ - recs[i] = new Recipient(new EmailAddress(mEmail), RecipientType.BCC); - i++; - } - } + String gatewayName = PortalContext.getConfiguration().getGatewayName(httpServletRequest); + String gatewayURL = PortalContext.getConfiguration().getGatewayURL(httpServletRequest); + + //send email to the assignee String properEmailSubject = EmailPartsConstruction.getRoleAssignmentRevokeSubject(new LiferayGroupManager().getGroup(groupId).getGroupName()); - - TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = new TemplateUserRolesModifiedForGroup( - PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest), + TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = + new TemplateUserRolesModifiedForGroup(gatewayName, gatewayURL, group, userToReceiveTheMail, manager, newRoles, new ArrayList<>(), new Date() ); _log.info("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName()); - EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs); + EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, new Recipient(userToReceiveTheMail.getEmail())); + + String[] theRoles = new String[newRoles.size()]; + int i = 0; + for (GCubeRole role : newRoles) { + theRoles[i] = role.getRoleName(); + i++; + } + //send email to the manager + ArrayList managersEmails = getVREManagersEmailsForGroup(groupId); + _log.info("Sending email to VRE Managers about user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName()); + String managersEmailSubject = "Roles assignment notification on " + group.getGroupName(); + if (!managersEmails.isEmpty()) { + for (String mEmail : managersEmails){ + TemplateManagerHasAssignedRoles managersTemplate = + new TemplateManagerHasAssignedRoles( + userToReceiveTheMail, + manager.getFullname(), + group.getGroupName(), + theRoles, + gatewayName, + gatewayURL); + + EmailTemplateService.send(managersEmailSubject, managersTemplate, httpServletRequest, new Recipient(mEmail)); + } + } } + /** * * @param groupId @@ -1493,26 +1515,41 @@ public class UsersManagementPortletHome extends GenericPortlet { */ public void notifyUsersByEmailOnRoleRevokation(long groupId, GCubeUser userToReceiveTheMail, GCubeUser manager, GCubeGroup group, List revokeRoles, HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault { _log.debug("Notifying user by email on role revokation for user: " + userToReceiveTheMail.getUsername() + " for context name: " + group.getGroupName() ); - ArrayList managersEmails = getVREManagersEmailsForGroup(groupId); - - int recSize = managersEmails.size() + 1; - Recipient[] recs = new Recipient[recSize]; - recs[0] = new Recipient(new EmailAddress(userToReceiveTheMail.getEmail()), RecipientType.TO); - if (!managersEmails.isEmpty()) { - int i = 1; - for (String mEmail : managersEmails){ - recs[i] = new Recipient(new EmailAddress(mEmail), RecipientType.BCC); - i++; - } - } + String gatewayName = PortalContext.getConfiguration().getGatewayName(httpServletRequest); + String gatewayURL = PortalContext.getConfiguration().getGatewayURL(httpServletRequest); + + //send email to the assignee String properEmailSubject = EmailPartsConstruction.getRoleAssignmentRevokeSubject(new LiferayGroupManager().getGroup(groupId).getGroupName()); - - TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = new TemplateUserRolesModifiedForGroup( - PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest), - group, userToReceiveTheMail, manager, new ArrayList<>(), revokeRoles, new Date() ); + TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = + new TemplateUserRolesModifiedForGroup(gatewayName, gatewayURL, + group, userToReceiveTheMail, manager, revokeRoles, new ArrayList<>(), new Date() ); _log.info("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName()); - EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs); - + EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, new Recipient(userToReceiveTheMail.getEmail())); + + String[] theRoles = new String[revokeRoles.size()]; + int i = 0; + for (GCubeRole role : revokeRoles) { + theRoles[i] = role.getRoleName(); + i++; + } + //send email to the manager + ArrayList managersEmails = getVREManagersEmailsForGroup(groupId); + _log.info("Sending email to VRE Managers about user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName()); + String managersEmailSubject = "Revoked roles notification on " + group.getGroupName(); + if (!managersEmails.isEmpty()) { + for (String mEmail : managersEmails){ + TemplateManagerHasRevokedRoles managersTemplate = + new TemplateManagerHasRevokedRoles( + userToReceiveTheMail, + manager.getFullname(), + group.getGroupName(), + theRoles, + gatewayName, + gatewayURL); + + EmailTemplateService.send(managersEmailSubject, managersTemplate, httpServletRequest, new Recipient(mEmail)); + } + } } } \ No newline at end of file