import javax.naming.InitialContext;
import javax.naming.NamingException;
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;
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);
// 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();
import javax.naming.NamingException;
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;
}
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
*/
package org.mxchange.pizzaapplication.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.jcoreee.utils.FacesUtils;
+import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException;
+import org.mxchange.jusercore.model.user.User;
import org.mxchange.pizzaapplication.beans.BasePizzaController;
+import org.mxchange.pizzaapplication.beans.user.PizzaUserWebSessionController;
/**
* A web session bean for resending confirmation link
*/
private ResendLinkSessionBeanRemote emailBean;
+ /**
+ * User controller
+ */
+ @Inject
+ private PizzaUserWebSessionController userController;
+
/**
* Default constructor
*/
@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