From 4bf9153c45ea1484b34092a1a6ea784d851b3cee Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Tue, 5 Dec 2017 18:04:21 +0000 Subject: [PATCH] alpha versione complete git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/accept-invite-portlet@160094 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../acceptinvite/PortletViewController.java | 154 +++++++--- src/main/webapp/WEB-INF/jsp/view.jsp | 274 ++++++++---------- src/main/webapp/images/loader.gif | Bin 0 -> 17090 bytes src/main/webapp/js/main.js | 61 ++++ 4 files changed, 297 insertions(+), 192 deletions(-) create mode 100644 src/main/webapp/images/loader.gif diff --git a/src/main/java/org/gcube/portlets/user/acceptinvite/PortletViewController.java b/src/main/java/org/gcube/portlets/user/acceptinvite/PortletViewController.java index 3976317..119c878 100644 --- a/src/main/java/org/gcube/portlets/user/acceptinvite/PortletViewController.java +++ b/src/main/java/org/gcube/portlets/user/acceptinvite/PortletViewController.java @@ -14,14 +14,16 @@ package org.gcube.portlets.user.acceptinvite; import java.io.IOException; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import javax.portlet.ActionRequest; -import javax.portlet.ActionResponse; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.portlet.ResourceRequest; import javax.portlet.ResourceResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.commons.codec.binary.Base64; import org.gcube.common.portal.PortalContext; @@ -38,28 +40,28 @@ import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeUser; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.portlet.bind.annotation.ActionMapping; import org.springframework.web.portlet.bind.annotation.RenderMapping; import org.springframework.web.portlet.bind.annotation.ResourceMapping; -import com.liferay.portal.kernel.exception.PortalException; -import com.liferay.portal.kernel.exception.SystemException; -import com.liferay.portal.kernel.json.JSONArray; -import com.liferay.portal.kernel.json.JSONFactoryUtil; -import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.model.Group; +import com.liferay.portal.model.User; import com.liferay.portal.service.GroupLocalServiceUtil; +import com.liferay.portal.service.ServiceContext; +import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.util.PortalUtil; @Controller(value = "PortletViewController") @RequestMapping("VIEW") public class PortletViewController { private static Log _log = LogFactoryUtil.getLog(PortletViewController.class); + public static final Pattern VALID_EMAIL_ADDRESS_REGEX = + Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); + + public static final String DEFAULT_COMPANY_WEB_ID = "liferay.com"; private static String PAGE_NOT_AUTHORIZED = "not-authorized"; private static String PAGE_INVITE_NOTFOUND = "invite-notfound"; @@ -69,6 +71,8 @@ public class PortletViewController { public static String INVITE_INSTANCE = "inviteInstance"; + private static String MODEL_ATTR = "theModel"; + private static DatabookStore store; /** @@ -135,44 +139,122 @@ public class PortletViewController { model.addAttribute("groupId", site.getGroupId()); model.addAttribute("landingPage", PortalContext.getConfiguration().getSiteLandingPagePath(httpReq)); + HttpSession session = httpReq.getSession(); + session.setAttribute(MODEL_ATTR, model); + return PAGE_INVITE_PROCESS; } - - @ResourceMapping(value="findState") - public void findStateForCountry(ResourceRequest request, ResourceResponse response) throws IOException { - String countryName = ParamUtil.getString(request, "countryName"); - _log.info("countryName=" + countryName); - JSONArray stateArray = JSONFactoryUtil.createJSONArray(); - JSONObject stateObject,stateObject2; - if(countryName.equalsIgnoreCase("india")) - { - stateObject = JSONFactoryUtil.createJSONObject(); - stateObject.put("stateId", "1"); - stateObject.put("name", "Delhi"); - stateObject2 = JSONFactoryUtil.createJSONObject(); - stateObject2.put("stateId", "2"); - stateObject2.put("name", "Gujrat"); + @ResourceMapping(value="createAccount") + public void createAccountForUser(ResourceRequest request, ResourceResponse response) throws IOException { + String email = ParamUtil.getString(request, "email"); + String firstName = ParamUtil.getString(request, "firstname"); + String lastName = ParamUtil.getString(request, "lastname"); + String password = ParamUtil.getString(request, "password"); + String repassword = ParamUtil.getString(request, "repassword"); + _log.info("firstName=" + firstName); + _log.info("lastName=" + lastName); + _log.info("email=" + email); + _log.info("password=" + password); + _log.info("repassword=" + repassword); + HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(request)); + Model model = (Model) httpReq.getSession().getAttribute(MODEL_ATTR); + Invite invite = (Invite) model.asMap().get(INVITE_INSTANCE); + + if (invite.getInvitedEmail().compareTo(email) != 0) { + response.getWriter().println("The email address invited does not match or is empty."); + return; } - else{ - stateObject = JSONFactoryUtil.createJSONObject(); - stateObject.put("stateId", "21"); - stateObject.put("name", "LA"); - - stateObject2 = JSONFactoryUtil.createJSONObject(); - stateObject2.put("stateId", "22"); - stateObject2.put("name", "California"); + //check the fields before creating account + if (firstName == null + || firstName.equals("") + || lastName == null + || lastName.equals("") + || email.equals("") + || password.equals("") + || repassword.equals("") + || password.length() < 8) { + response.getWriter().println("Not all the required fields have been filled."); + return; } - stateArray.put(stateObject); - stateArray.put(stateObject2); - response.getWriter().println(stateArray); + if (!validate(email)) { + response.getWriter().println("The email address invited does not look like a valid email address."); + return; + } + + //checking if the user has been already registered or is already in the portal + GCubeUser theUser = register(firstName, lastName, email, password); + if (theUser != null) + response.getWriter().println("OK"); + else + response.getWriter().println("Something went wrong when creating your account during server communication, please check your connection."); + return; } + private static boolean validate(String emailStr) { + Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(emailStr); + return matcher.find(); + } -} \ No newline at end of file + private GCubeUser register(String firstName, String lastName, String email, String password1) { + GCubeUser toReturn = null; + try{ + _log.debug("Trying createuser " + email); + Long defaultCompanyId = PortalUtil.getDefaultCompanyId(); + Long defaultUserId = UserLocalServiceUtil.getDefaultUserId(defaultCompanyId); + + 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 password2 = password1; + User added = UserLocalServiceUtil.addUser( + defaultUserId, + defaultCompanyId, + autoPassword, + password1, + password2, + true, + "", + email, + 0L, + "", + locale, + firstName, + "", + lastName, + prefixId, + suffixId, + true, + birthdayMonth, + birthdayDay, + birthdayYear, + "", + null, + null, + null, + null, + true, + new ServiceContext()); + _log.debug("CreateUser " + lastName + " SUCCESS"); + UserLocalServiceUtil.updateAgreedToTermsOfUse(added.getUserId(), false); + UserLocalServiceUtil.updatePasswordReset(added.getUserId(), false); + + } + catch(Exception e){ + // unable to create.. we need to delete it from the list of users + _log.error("Unable to create the user " + email + " in liferay.", e); + + } + return toReturn; + } +} diff --git a/src/main/webapp/WEB-INF/jsp/view.jsp b/src/main/webapp/WEB-INF/jsp/view.jsp index 12a8f5e..51f93b4 100644 --- a/src/main/webapp/WEB-INF/jsp/view.jsp +++ b/src/main/webapp/WEB-INF/jsp/view.jsp @@ -10,173 +10,135 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - + -Change the Country State Change By Ajax

-Country: - + -

-State: - -

- Hello - !
-

- -

- You have recently received an invitation from - - to join the " - target="_blank"> - Virtual Research Environment. - - -
- Please note: the invite is valid for your email "> - - only. To accept the invite, please fill in the information below: +

+
+

+ Hello + + !
+

+

+ You have recently received an invitation from + + to join the " + target="_blank"> + Virtual Research Environment. + + +
+ Please note: the invite is valid for your email "> + + only. To accept the invite, please fill in the information below:
-

-
-
-
- - - - - -
-
-
-
- - - - - - -
- -
-
+
+
+
+
+ +
+
+
+
+ +
+ +
+
+
-
- - + + This invite is valid for your email "> - - only, you will be asked to enter your password associated to it on this portal. + href="mailto:"> + + only, you will be asked to enter your password associated to it on this portal. <% - String exploreURL = request.getAttribute("landingPage") + "/explore?" + InvitesManager.SITEID_ATTR - + "=" + request.getAttribute("groupId"); - %> -

- -

-
- - -

- -
- \ No newline at end of file + String exploreURL = request.getAttribute("landingPage") + "/explore?" + InvitesManager.SITEID_ATTR + + "=" + request.getAttribute("groupId"); + %> +

+ +

+
+ +

+
\ No newline at end of file diff --git a/src/main/webapp/images/loader.gif b/src/main/webapp/images/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..89ae681f66a017f1e57e7ec46f7808489ae876cc GIT binary patch literal 17090 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 Mx=8)S!lu&y0<|xX!2kdN literal 0 HcmV?d00001 diff --git a/src/main/webapp/js/main.js b/src/main/webapp/js/main.js index e69de29..2135b5a 100644 --- a/src/main/webapp/js/main.js +++ b/src/main/webapp/js/main.js @@ -0,0 +1,61 @@ +$(document).ready(function(){ + $( "#createAccountButton" ).click(function() { + var firstnameBox = $.trim( $('#firstname').val() ) + if (firstnameBox == "") { + $('#labelFirstName').css("color","red"); + $('#labelFirstName').text("First Name (This field is required)"); + } else { + $('#labelFirstName').css("color","#555"); + $('#labelFirstName').text("First Name (Required)"); + } + var lastnameBox = $.trim( $('#lastname').val() ) + if (lastnameBox == "") { + $('#labelLastName').css("color","red"); + $('#labelLastName').text("Last Name (This field is required)"); + } else { + $('#labelLastName').css("color","#555"); + $('#labelLastName').text("Last Name (Required)"); + } + + var passwd1 = $('#password'); + var labelPwd1 = $('#labelPwd1'); + var passwd2 = $('#repassword'); + var labelPwd2 = $('#labelPwd2'); + + labelPwd1.addClass( passwd1.val().length === 0 ? 'has-error' : 'has-success' ); + labelPwd2.addClass( passwd2.val().length === 0 ? 'has-error' : 'has-success' ); + + var nomatch = $('#labelPasswordDontMatch'); + + if (passwd1.val() !== passwd2.val()) { + nomatch.css("display","block"); + nomatch.css("color","red"); + labelPwd1.addClass( passwd1.val() !== passwd2.val() ? 'has-error' : 'has-success' ) + .removeClass( passwd1.val() === passwd2.val() ? 'has-error' : 'has-success' ); + labelPwd2.addClass( passwd1.val() !== passwd2.val() ? 'has-error' : 'has-success' ) + .removeClass( passwd1.val() === passwd2.val() ? 'has-error' : 'has-success' ); + } + else { + nomatch.css("display","none"); + } + + var shortpwd = $('#labelPasswordTooShort'); + + if (passwd1.val().length > 0 && passwd1.val().length < 8) { + shortpwd.css("display","block"); + shortpwd.css("color","red"); + labelPwd1.addClass(passwd1.val().length < 8 ? 'has-error' : 'has-success' ) + .removeClass(passwd1.val().length < 8 ? 'has-error' : 'has-success' ); + labelPwd2.addClass(passwd2.val().length < 8 ? 'has-error' : 'has-success' ) + .removeClass(passwd2.val().length < 8 ? 'has-error' : 'has-success' ); + } + else { + shortpwd.css("display","none"); + } + + if (passwd1.val() == passwd2.val() && passwd1.val().length >= 8 && lastnameBox != "" && firstnameBox != "") { + doCallback(); + } + + }); +}); \ No newline at end of file