This commit is contained in:
Massimiliano Assante 2020-09-24 16:32:13 +02:00
parent 6529b999f1
commit 085fe4e5c7
13 changed files with 65 additions and 171 deletions

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/create-users-portlet-2.5.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<classpathentry kind="src" output="target/create-users-portlet-3.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/create-users-portlet-2.5.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
<classpathentry excluding="**" kind="src" output="target/create-users-portlet-3.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
@ -18,11 +18,6 @@
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
@ -36,5 +31,10 @@
</attributes>
</classpathentry>
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="output" path="target/create-users-portlet-2.5.0-SNAPSHOT/WEB-INF/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/create-users-portlet-3.0.0-SNAPSHOT/WEB-INF/classes"/>
</classpath>

View File

@ -1,4 +1,4 @@
eclipse.preferences.version=1
lastWarOutDir=/Users/massi/workspace/create-users-portlet/target/create-users-portlet-2.5.0-SNAPSHOT
lastWarOutDir=/Users/massi/workspace/create-users-portlet/target/create-users-portlet-3.0.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false

View File

@ -1,9 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -4,6 +4,9 @@
<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/resources"/>
<dependent-module archiveName="email-templates-library-1.4.2.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/email-templates-library/email-templates-library">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/create-users/target/subscribe-users-1.0.0-SNAPSHOT/WEB-INF/classes"/>
<property name="context-root" value="create-users-portlet"/>
</wb-module>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.7"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="jst.jaxrs" version="2.0"/>
<installed facet="liferay.portlet" version="6.0"/>
<installed facet="com.gwtplugins.gwt.facet" version="1.0"/>
<installed facet="java" version="1.8"/>
</faceted-project>

17
CHANGELOG.md Normal file
View File

@ -0,0 +1,17 @@
# Changelog for invites-common-livrary
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v3.0.0-SNAPSHOT] - 2020-09-24
Ported to git
[#19812] modified to support the new IAM Keycloak based
## [v1.0.0] - 2016-03-28
First release, for changes between 1.0 version and 3 see changelog xml in distro folder.

View File

@ -1,32 +0,0 @@
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>servicearchive</id>
<formats>
<format>tar.gz</format>
</formats>
<baseDirectory>/</baseDirectory>
<fileSets>
<fileSet>
<directory>${distroDirectory}</directory>
<outputDirectory>/</outputDirectory>
<useDefaultExcludes>true</useDefaultExcludes>
<includes>
<include>README</include>
<include>LICENSE</include>
<include>changelog.xml</include>
<include>profile.xml</include>
</includes>
<fileMode>755</fileMode>
<filtered>true</filtered>
</fileSet>
</fileSets>
<files>
<file>
<source>target/${build.finalName}.${project.packaging}</source>
<outputDirectory>/${artifactId}</outputDirectory>
</file>
</files>
</assembly>

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID></ID>
<Type>Service</Type>
<Profile>
<Description>${description}</Description>
<Class>PortletUser</Class>
<Name>${artifactId}</Name>
<Version>${version}</Version>
<Packages>
<Software>
<Name>${artifactId}</Name>
<Version>${version}</Version>
<MavenCoordinates>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
</MavenCoordinates>
<Files>
<File>target/${build.finalName}.war</File>
</Files>
</Software>
</Packages>
</Profile>
</Resource>

14
pom.xml
View File

@ -13,7 +13,7 @@
<groupId>org.gcube.portlets.admin</groupId>
<artifactId>create-users-portlet</artifactId>
<packaging>war</packaging>
<version>2.5.0-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<name>Create users portlet</name>
<description>
Create users portlet allows a VRE-Manager to enter user's personal data and automatically register he/she in the portal.
@ -28,10 +28,10 @@
<properties>
<!-- Convenience property to set the GWT version -->
<gwtVersion>2.7.0</gwtVersion>
<gwtVersion>2.8.2</gwtVersion>
<distroDirectory>distro</distroDirectory>
<liferay.version>6.2.5</liferay.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
@ -51,7 +51,7 @@
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId>
<version>LATEST</version>
<version>3.6.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -108,12 +108,6 @@
<scope>provided</scope>
<version>${gwtVersion}</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<scope>provided</scope>
<version>${gwtVersion}</version>
</dependency>
<dependency>
<groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId>

View File

@ -62,8 +62,8 @@ public class AddUserForm extends Composite{
@UiField
TextBox surnameTextbox;
@UiField
TextBox companyTextbox;
// @UiField
// TextBox companyTextbox;
@UiField
AlertBlock errorBlock;
@ -115,7 +115,7 @@ public class AddUserForm extends Composite{
String actualName = nameTextbox.getText().trim();
String actualSurname = surnameTextbox.getText().trim();
String actualEmail = emailTextbox.getText().trim();
String actualCompany = companyTextbox.getText().trim();
String actualCompany = "";//companyTextbox.getText().trim();
if(actualEmail.isEmpty() || !actualEmail.matches(EMAIL_PATTERN)){
@ -262,10 +262,10 @@ public class AddUserForm extends Composite{
void onChangeSurnameTextbox(KeyUpEvent event){
hideAlertBlocks();
}
@UiHandler("companyTextbox")
void onChangeCompanyTextbox(KeyUpEvent event){
hideAlertBlocks();
}
//
// @UiHandler("companyTextbox")
// void onChangeCompanyTextbox(KeyUpEvent event){
// hideAlertBlocks();
// }
}

View File

@ -69,11 +69,11 @@
b:id="surname" title="User's surname" ui:field="surnameTextbox" />
</b:Controls>
<b:ControlLabel for="company" title="User's company">Institution/Organization:</b:ControlLabel>
<b:Controls>
<b:TextBox alternateSize="LARGE" placeholder="Institution/Organization"
b:id="company" title="User's Institution/Organization" ui:field="companyTextbox" />
</b:Controls>
<!-- <b:ControlLabel for="company" title="User's company">Institution/Organization:</b:ControlLabel> -->
<!-- <b:Controls> -->
<!-- <b:TextBox alternateSize="LARGE" placeholder="Institution/Organization" -->
<!-- b:id="company" title="User's Institution/Organization" ui:field="companyTextbox" /> -->
<!-- </b:Controls> -->
<b:ControlLabel for="sendmail"
title="Send a notification mail to the user">Send mail:</b:ControlLabel>

View File

@ -1,6 +1,7 @@
package org.gcube.portlets.admin.createusers.orchestrator;
import org.gcube.portal.event.publisher.lr62.PortalEvent;
import org.gcube.portlets.admin.createusers.server.CreateUsersImpl;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
@ -46,7 +47,7 @@ public class CreateUserAddToVre extends PortalEvent {
protected String computeUsername(String email) {
try {
Long companyId = CompanyThreadLocal.getCompanyId();
Long companyId = CreateUsersImpl.getCompany().getCompanyId();
Long defaultUserId = UserLocalServiceUtil.getDefaultUserId(companyId);
return defaultScreenNameGenerator.generate(companyId, defaultUserId, email);
} catch (Exception e) {

View File

@ -8,13 +8,14 @@ import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import org.gcube.common.portal.PortalContext;
import org.gcube.portal.mailing.message.Recipient;
import org.gcube.portal.mailing.service.EmailTemplateService;
import org.gcube.portal.mailing.templates.TemplateWelcomeCreatedAccount;
import org.gcube.portlets.admin.createusers.client.HandleUsersService;
import org.gcube.portlets.admin.createusers.orchestrator.CreateUserAddToVre;
import org.gcube.portlets.admin.createusers.orchestrator.CreateUserAddToVrePublisher;
import org.gcube.portlets.admin.createusers.shared.VreUserBean;
import org.gcube.vomanagement.usermanagement.UserManager;
import org.gcube.vomanagement.usermanagement.exception.UserManagementPortalException;
@ -33,11 +34,10 @@ import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.PropsUtil;
import com.liferay.portal.model.Company;
import com.liferay.portal.model.User;
import com.liferay.portal.model.Group;
import com.liferay.portal.service.CompanyLocalServiceUtil;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.GroupLocalServiceUtil;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.util.PortalUtil;
/**
* The server side implementation of the RPC service.
@ -48,6 +48,8 @@ public class CreateUsersImpl extends RemoteServiceServlet implements HandleUsers
private final static Logger logger = LoggerFactory.getLogger(CreateUsersImpl.class);
private static final long serialVersionUID = -3124676000683430170L;
private static final String REGISTERED_USERS_TABLE = "registered_users";
private static final String INITIAL_PWD = "training1";
// SQL TABLE FIELDS
private static final String FIELD_EMAIL = "email";
@ -233,15 +235,16 @@ public class CreateUsersImpl extends RemoteServiceServlet implements HandleUsers
int res = statement.executeUpdate();
if(res != 0){
logger.debug("User added in " + REGISTERED_USERS_TABLE);
// add in liferay too
// add in Keycloak too
try{
User user = register(name, surname, email, institution, sendEmail);
// adding to the current VRE
long userId = userManager.getUserId(user.getScreenName());
userManager.assignUserToGroup(getCurrentGroupID(), userId);
logger.debug("trying to send the event to create the account for this user to the orchestrator");
long currGroupId = pContext.getCurrentGroupId(getThreadLocalRequest());
Group theVRE = GroupLocalServiceUtil.getGroup(currGroupId);
new CreateUserAddToVrePublisher().publish(
CreateUserAddToVre.newEvent(name, surname, email, INITIAL_PWD, theVRE));
if (sendEmail)
sendEmailToUser(email);
}catch(Exception e){
// unable to create.. we need to delete it from the list of users
@ -273,74 +276,7 @@ public class CreateUsersImpl extends RemoteServiceServlet implements HandleUsers
}
}
private User register(String firstName, String lastName, String email, String institution, boolean sendEmail) {
User toReturn = null;
try{
logger.debug("Trying createuser and instatiate serviceContext" + email);
Long defaultCompanyId = PortalUtil.getDefaultCompanyId();
Long defaultUserId = UserLocalServiceUtil.getDefaultUserId(defaultCompanyId);
PortalContext pContext = PortalContext.getConfiguration();
//ServiceContext instanciated as follows is needed when the Email verification is sent
ServiceContext serviceContext = new ServiceContext();
serviceContext.setScopeGroupId(pContext.getCurrentGroupId(getThreadLocalRequest()));
serviceContext.setPortalURL(pContext.getGatewayURL(getThreadLocalRequest()));
serviceContext.setPathMain("/c");
boolean autoPassword = false;
Locale locale = new Locale("en_US");
int prefixId = 0;
int suffixId = 0;
int birthdayMonth = 1;
int birthdayDay = 1;
int birthdayYear = 1970;
String password1 = "training1";
String password2 = password1;
toReturn = UserLocalServiceUtil.addUser(
defaultUserId,
defaultCompanyId,
autoPassword,
password1,
password2,
true,
"",
email,
0L,
"",
locale,
firstName,
"",
lastName,
prefixId,
suffixId,
true,
birthdayMonth,
birthdayDay,
birthdayYear,
institution,
null,
null,
null,
null,
false,
serviceContext);
logger.debug("CreateUser " + lastName + " SUCCESS");
UserLocalServiceUtil.updateEmailAddressVerified(toReturn.getUserId(), true);
UserLocalServiceUtil.updateAgreedToTermsOfUse(toReturn.getUserId(), false);
UserLocalServiceUtil.updatePasswordReset(toReturn.getUserId(), true);
UserLocalServiceUtil.updateReminderQuery(toReturn.getUserId(), "What was your initial password?", "training1");
logger.debug("User " + lastName + " has agreed to ToU");
logger.debug("User " + lastName + " has verified the Email");
logger.debug("User " + lastName + " updatePasswordReset & updateReminderQuery");
}
catch(Exception e){
// unable to create.. we need to delete it from the list of users
logger.error("Unable to create the user " + email + " in liferay.", e);
}
return toReturn;
}
@Override
public List<VreUserBean> getAlreadyRegisterdUsers() {