From 62bde4cb8792bc3fb69f9f4eadfda653d243d245 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Wed, 18 May 2016 14:50:42 +0200 Subject: [PATCH] fixed 2nd parameter, it can be easily generated within a JSF application MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../AddressbookEmailChangeWebSessionBean.java | 8 +++- ...AddressbookUserRegisterWebSessionBean.java | 6 ++- .../AddressbookResendLinkWebSessionBean.java | 43 ++++++++++++++++++- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/java/org/mxchange/addressbook/beans/email_address/AddressbookEmailChangeWebSessionBean.java b/src/java/org/mxchange/addressbook/beans/email_address/AddressbookEmailChangeWebSessionBean.java index 4337db00..b27e3bfd 100644 --- a/src/java/org/mxchange/addressbook/beans/email_address/AddressbookEmailChangeWebSessionBean.java +++ b/src/java/org/mxchange/addressbook/beans/email_address/AddressbookEmailChangeWebSessionBean.java @@ -29,6 +29,7 @@ import javax.naming.NamingException; import org.mxchange.addressbook.beans.BaseAddressbookController; import org.mxchange.addressbook.beans.login.AddressbookUserLoginWebSessionController; import org.mxchange.jcontacts.contact.Contact; +import org.mxchange.jcoreee.utils.FacesUtils; import org.mxchange.jusercore.exceptions.UserPasswordMismatchException; import org.mxchange.jusercore.model.email_address.ChangeableEmailAddress; import org.mxchange.jusercore.model.email_address.EmailAddressChange; @@ -88,7 +89,7 @@ public class AddressbookEmailChangeWebSessionBean extends BaseAddressbookControl this.emailBean = (EmailChangeSessionBeanRemote) context.lookup("java:global/addressbook-ejb/email-change!org.mxchange.jusercore.model.email_address.EmailChangeSessionBeanRemote"); //NOI18N // Init list - this.emailAddresses = this.emailBean.allQueuedAddressesAsList(); + this.emailAddresses = this.emailBean.allQueuedAddresses(); } catch (final NamingException e) { // Throw again throw new FaceletException(e); @@ -132,8 +133,11 @@ public class AddressbookEmailChangeWebSessionBean extends BaseAddressbookControl // Create change object, to save EJB calls, the hash is not generated here ChangeableEmailAddress emailChange = new EmailAddressChange(user, this.getEmailAddress()); + // Get base URL + String baseUrl = FacesUtils.generateBaseUrl(); + // Call EJB - this.emailBean.enqueueEmailAddressForChange(emailChange); + this.emailBean.enqueueEmailAddressForChange(emailChange, baseUrl); // Unset all so the user is forced to re-enter it this.clear(); diff --git a/src/java/org/mxchange/addressbook/beans/register/AddressbookUserRegisterWebSessionBean.java b/src/java/org/mxchange/addressbook/beans/register/AddressbookUserRegisterWebSessionBean.java index 6c71bf4b..78bd2a97 100644 --- a/src/java/org/mxchange/addressbook/beans/register/AddressbookUserRegisterWebSessionBean.java +++ b/src/java/org/mxchange/addressbook/beans/register/AddressbookUserRegisterWebSessionBean.java @@ -33,6 +33,7 @@ import org.mxchange.addressbook.beans.user.AddressbookAdminUserWebRequestControl import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController; import org.mxchange.jcontacts.contact.Contact; import org.mxchange.jcontacts.contact.UserContact; +import org.mxchange.jcoreee.utils.FacesUtils; import org.mxchange.jusercore.events.registration.RegisteredUserEvent; import org.mxchange.jusercore.events.registration.UserRegisteredEvent; import org.mxchange.jusercore.exceptions.DataRepeatMismatchException; @@ -151,8 +152,11 @@ public class AddressbookUserRegisterWebSessionBean extends BaseAddressbookContro } try { + // Get base URL + String baseUrl = FacesUtils.generateBaseUrl(); + // Call bean - User registeredUser = this.registerBean.registerUser(user); + User registeredUser = this.registerBean.registerUser(user, baseUrl); // The id number should be set assert (registeredUser.getUserId() instanceof Long) : "registeredUser.userId is null after registerUser() was called."; //NOI18N diff --git a/src/java/org/mxchange/addressbook/beans/resendlink/AddressbookResendLinkWebSessionBean.java b/src/java/org/mxchange/addressbook/beans/resendlink/AddressbookResendLinkWebSessionBean.java index 12aa9d72..43642e46 100644 --- a/src/java/org/mxchange/addressbook/beans/resendlink/AddressbookResendLinkWebSessionBean.java +++ b/src/java/org/mxchange/addressbook/beans/resendlink/AddressbookResendLinkWebSessionBean.java @@ -16,13 +16,21 @@ */ package org.mxchange.addressbook.beans.resendlink; +import java.text.MessageFormat; +import java.util.Locale; import javax.enterprise.context.SessionScoped; +import javax.faces.context.FacesContext; import javax.faces.view.facelets.FaceletException; +import javax.inject.Inject; import javax.inject.Named; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.addressbook.beans.BaseAddressbookController; +import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController; +import org.mxchange.jcoreee.utils.FacesUtils; +import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException; +import org.mxchange.jusercore.model.user.User; /** * A web session bean for resending confirmation link @@ -48,6 +56,12 @@ public class AddressbookResendLinkWebSessionBean extends BaseAddressbookControll */ private ResendLinkSessionBeanRemote emailBean; + /** + * User controller + */ + @Inject + private AddressbookUserWebSessionController userController; + /** * Default constructor */ @@ -67,7 +81,34 @@ public class AddressbookResendLinkWebSessionBean extends BaseAddressbookControll @Override public String doResendLink () { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + // The email address should not be empty as the JSF validates this + if (this.getEmailAddress() == null) { + // Throw NPE + throw new NullPointerException("this.emailAddress is null"); //NOI18N + } + + // Init user instance + User user; + + try { + // Is the email address really not used? + user = this.userController.lookupUserByEmailAddress(this.getEmailAddress()); + } catch (final UserEmailAddressNotFoundException ex) { + // Not found, should not happen as the registeredvalidator should find it + throw new FaceletException(MessageFormat.format("this.emailAddress={0} should be resolveable into User instance.", this.getEmailAddress()), ex); //NOI18N + } + + // Get locale from faces context + Locale locale = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale(); + + // Get base URL + String baseUrl = FacesUtils.generateBaseUrl(); + + // Call EJB and return redirect target + String redirectTarget = this.emailBean.resendConfirmationLink(user, locale, baseUrl); + + // Return redirect target + return redirectTarget; } @Override -- 2.39.5