diff --git a/pom.xml b/pom.xml index 10d48c1..1b0c9db 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,23 @@ + + org.gcube.common + event-publisher-library + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + provided + + + org.gcube.portal + event-publisher-portal + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + provided + + + com.googlecode.json-simple + json-simple + provided + org.gcube.common.portal portal-manager diff --git a/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVre.java b/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVre.java new file mode 100644 index 0000000..dae4dd6 --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVre.java @@ -0,0 +1,90 @@ +package org.gcube.portlets.admin.createusers.orchestrator; + +import org.gcube.portal.event.publisher.lr62.PortalEvent; + +import com.liferay.portal.kernel.exception.PortalException; +import com.liferay.portal.kernel.exception.SystemException; +import com.liferay.portal.model.Group; +import com.liferay.portal.security.auth.CompanyThreadLocal; +import com.liferay.portal.security.auth.DefaultScreenNameGenerator; +import com.liferay.portal.service.UserLocalServiceUtil; + +public class CreateUserAddToVre extends PortalEvent { + + private static final long serialVersionUID = 1499288552188273747L; + + public static final String NAME = "create-user-add-to-vre"; + public static final String FIRST_NAME_ENTRY = "first-name"; + public static final String LAST_NAME_ENTRY = "last-name"; + public static final String EMAIL_ENTRY = "email"; + public static final String PASSWORD_ENTRY = "password"; + + private static DefaultScreenNameGenerator defaultScreenNameGenerator = new DefaultScreenNameGenerator(); + + private CreateUserAddToVre(String firstname, String lastname, String email, String password, Group group) + throws PortalException, SystemException { + + super(NAME); + setUser(computeUsername(email)); + setFirstname(firstname); + setLastname(lastname); + setEmail(email); + setPassword(password); + setGroup(group); + } + + public static CreateUserAddToVre newEvent(String firstname, String lastname, String email, String password, + Group group) { + + try { + return new CreateUserAddToVre(firstname, lastname, email, password, group); + } catch (PortalException | SystemException e) { + log.error("Cannot create event from group model object", e); + return null; + } + } + + protected String computeUsername(String email) { + try { + Long companyId = CompanyThreadLocal.getCompanyId(); + Long defaultUserId = UserLocalServiceUtil.getDefaultUserId(companyId); + return defaultScreenNameGenerator.generate(companyId, defaultUserId, email); + } catch (Exception e) { + log.error("Cannot generate username via screen name generator", e); + return ""; + } + } + + public void setFirstname(String firstname) { + set(FIRST_NAME_ENTRY, firstname); + } + + public String getFirstname() { + return (String) get(FIRST_NAME_ENTRY); + } + + public void setLastname(String lastname) { + set(LAST_NAME_ENTRY, lastname); + } + + public String getLastname() { + return (String) get(LAST_NAME_ENTRY); + } + + public void setEmail(String email) { + set(EMAIL_ENTRY, email); + } + + public String getEmail() { + return (String) get(EMAIL_ENTRY); + } + + public void setPassword(String password) { + set(PASSWORD_ENTRY, password); + } + + public String getPassword() { + return (String) get(PASSWORD_ENTRY); + } + +} diff --git a/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVrePublisher.java b/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVrePublisher.java new file mode 100644 index 0000000..b92ffcc --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/createusers/orchestrator/CreateUserAddToVrePublisher.java @@ -0,0 +1,11 @@ +package org.gcube.portlets.admin.createusers.orchestrator; + +import org.gcube.portal.event.publisher.lr62.AbstractLR62EventPublisher; + +public class CreateUserAddToVrePublisher extends AbstractLR62EventPublisher { + + public CreateUserAddToVrePublisher() { + super(); + } + +}