Added support for template emails

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/gcube-loggedin@148757 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2017-05-16 16:45:07 +00:00
parent c3ddbdf85d
commit 0db87c477f
6 changed files with 46 additions and 39 deletions

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" output="target/gcube-loggedin-3.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/java"> <classpathentry kind="src" output="target/gcube-loggedin-3.3.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry excluding="**" kind="src" output="target/gcube-loggedin-3.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources"> <classpathentry excluding="**" kind="src" output="target/gcube-loggedin-3.3.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
@ -34,10 +34,10 @@
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/> <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="output" path="target/gcube-loggedin-3.2.0-SNAPSHOT/WEB-INF/classes"/> <classpathentry kind="output" path="target/gcube-loggedin-3.3.0-SNAPSHOT/WEB-INF/classes"/>
</classpath> </classpath>

View File

@ -1,6 +1,6 @@
eclipse.preferences.version=1 eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

View File

@ -4,7 +4,10 @@
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<dependent-module archiveName="gcube-widgets-2.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/gcube-widgets/gcube-widgets"> <dependent-module archiveName="gcube-widgets-2.2.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/gcube-widgets/gcube-widgets">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="email-templates-library-1.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/email-templates-library/email-templates-library">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/> <property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>

View File

@ -1,4 +1,9 @@
<ReleaseNotes> <ReleaseNotes>
<Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.3-3-0"
date="2017-05-16">
<Change>Ported to Java8</Change>
<Change>Added support for template emails</Change>
</Changeset>
<Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.3-2-0" <Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.3-2-0"
date="2016-11-23"> date="2016-11-23">
<Change>Removed ASL Session dependency</Change> <Change>Removed ASL Session dependency</Change>
@ -9,7 +14,8 @@
</Changeset> </Changeset>
<Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.3-0-0" <Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.3-0-0"
date="2016-07-15"> date="2016-07-15">
<Change>Added possibility for VRE Manager to edit VRE Abstract text</Change> <Change>Added possibility for VRE Manager to edit VRE Abstract text
</Change>
<Change>Restyled and ported to Liferay 6.2</Change> <Change>Restyled and ported to Liferay 6.2</Change>
</Changeset> </Changeset>
<Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.2-7-0" <Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.2-7-0"
@ -22,7 +28,8 @@
<Change>Added show more option when VRE Description is too long <Change>Added show more option when VRE Description is too long
</Change> </Change>
<Change>Added client scope handler for preventing back button cache <Change>Added client scope handler for preventing back button cache
problems</Change> problems
</Change>
</Changeset> </Changeset>
<Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.2-5-0" <Changeset component="org.gcube.portlets-user.gcube-loggedin-portlet.2-5-0"
date="2014-11-13"> date="2014-11-13">

16
pom.xml
View File

@ -13,7 +13,7 @@
<groupId>org.gcube.portlets.user</groupId> <groupId>org.gcube.portlets.user</groupId>
<artifactId>gcube-loggedin</artifactId> <artifactId>gcube-loggedin</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<version>3.2.0-SNAPSHOT</version> <version>3.3.0-SNAPSHOT</version>
<name>gCube Environment Home Portlet</name> <name>gCube Environment Home Portlet</name>
<description> <description>
@ -28,9 +28,8 @@
<!-- Convenience property to set the GWT version --> <!-- Convenience property to set the GWT version -->
<gwtVersion>2.7.0</gwtVersion> <gwtVersion>2.7.0</gwtVersion>
<distroDirectory>distro</distroDirectory> <distroDirectory>distro</distroDirectory>
<!-- GWT needs at least java 1.6 -->
<maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<liferay.version>6.2.5</liferay.version> <liferay.version>6.2.5</liferay.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -76,7 +75,7 @@
<dependency> <dependency>
<groupId>com.github.gwtbootstrap</groupId> <groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId> <artifactId>gwt-bootstrap</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.gcube.common.portal</groupId> <groupId>org.gcube.common.portal</groupId>
<artifactId>portal-manager</artifactId> <artifactId>portal-manager</artifactId>
@ -87,6 +86,11 @@
<artifactId>gcube-widgets</artifactId> <artifactId>gcube-widgets</artifactId>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>org.gcube.portal.mailing</groupId>
<artifactId>email-templates-library</artifactId>
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
</dependency>
<dependency> <dependency>
<groupId>org.gcube.dvos</groupId> <groupId>org.gcube.dvos</groupId>
<artifactId>usermanagement-core</artifactId> <artifactId>usermanagement-core</artifactId>
@ -189,8 +193,8 @@
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version> <version>2.3.2</version>
<configuration> <configuration>
<source>1.7</source> <source>${maven.compiler.source}</source>
<target>1.7</target> <target>${maven.compiler.target}</target>
</configuration> </configuration>
</plugin> </plugin>
<!-- SA Plugin --> <!-- SA Plugin -->

View File

@ -7,6 +7,9 @@ import java.util.Set;
import org.gcube.common.portal.PortalContext; import org.gcube.common.portal.PortalContext;
import org.gcube.common.portal.mailing.EmailNotification; import org.gcube.common.portal.mailing.EmailNotification;
import org.gcube.portal.mailing.message.Recipient;
import org.gcube.portal.mailing.service.EmailTemplateService;
import org.gcube.portal.mailing.templates.TemplateUserHasLeftVRE;
import org.gcube.portlets.user.gcubeloggedin.client.LoggedinService; import org.gcube.portlets.user.gcubeloggedin.client.LoggedinService;
import org.gcube.portlets.user.gcubeloggedin.shared.VObject; import org.gcube.portlets.user.gcubeloggedin.shared.VObject;
import org.gcube.portlets.user.gcubeloggedin.shared.VObject.UserBelongingClient; import org.gcube.portlets.user.gcubeloggedin.shared.VObject.UserBelongingClient;
@ -220,41 +223,31 @@ public class LoggedinServiceImpl extends RemoteServiceServlet implements Loggedi
} }
/** /**
* *
* @param scope . * @param username
* @param optionalMessage . * @param scope
* @param portalbasicurl
* @param gatewayName
*/ */
public void sendUserUnregisteredNotification(String username, String scope, String portalbasicurl, String gatewayName) { public void sendUserUnregisteredNotification(String username, String scope, String portalbasicurl, String gatewayName) {
ArrayList<String> adminEmails = getAdministratorsEmails(scope); ArrayList<String> adminEmails = getAdministratorsEmails(scope);
ArrayList<Recipient> recipients = new ArrayList<>();
for (String email : adminEmails) {
recipients.add(new Recipient(email));
}
UserManager um = new LiferayUserManager(); UserManager um = new LiferayUserManager();
GCubeUser currUser = null; GCubeUser currUser = null;
try { try {
currUser = um.getUserByUsername(username); currUser = um.getUserByUsername(username);
} catch (Exception e) { } catch (Exception e) {
_log.trace("Error getUserByUsername", e);
} }
String name = currUser.getFirstName();
String lastname = currUser.getLastName();
StringBuffer body = new StringBuffer(); String selectedVRE = scope.substring(scope.lastIndexOf("/")+1, scope.length());
body.append("<p>Dear manager of "+ scope +",<br />this email message was automatically generated by " + portalbasicurl +" to inform you that ");
body.append("</p>"); EmailTemplateService.send("Unregistration from VRE",
body.append("<p>"); new TemplateUserHasLeftVRE(currUser, selectedVRE, gatewayName, portalbasicurl),
body.append("<b>"+name + " " + lastname +"</b> has left the following environment: "); getThreadLocalRequest(),
body.append("<br /><br />"); recipients.toArray(new Recipient[recipients.size()]));
body.append("<b>" + scope+"</b>");
body.append("<br />");
body.append("<br />");
body.append("<b>Username: </b>" + username);
body.append("<br />");
body.append("<b>e-mail: </b>" + currUser.getEmail());
body.append("</p>");
String[] allMails = new String[adminEmails.size()];
adminEmails.toArray(allMails);
EmailNotification mailToAdmin = new EmailNotification(allMails , "Unregistration from VRE", body.toString(), getThreadLocalRequest());
mailToAdmin.sendEmail();
} }
} }