import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcoreee.utils.FacesUtils;
import org.mxchange.jjobs.beans.BaseJobsController;
import org.mxchange.jjobs.beans.login.JobsUserLoginWebSessionController;
import org.mxchange.jusercore.exceptions.UserPasswordMismatchException;
this.emailBean = (EmailChangeSessionBeanRemote) context.lookup("java:global/jjobs-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.jjobs.beans.BaseJobsController;
import org.mxchange.jjobs.beans.contact.JobsContactWebSessionController;
import org.mxchange.jjobs.beans.user.JobsAdminUserWebRequestController;
}
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.jjobs.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.jjobs.beans.BaseJobsController;
+import org.mxchange.jjobs.beans.user.JobsUserWebSessionController;
+import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException;
+import org.mxchange.jusercore.model.user.User;
/**
* A web session bean for resending confirmation link
*/
private ResendLinkSessionBeanRemote emailBean;
+ /**
+ * User controller
+ */
+ @Inject
+ private JobsUserWebSessionController 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
<h:link title="#{msg.LINK_GUEST_REGISTER_TITLE}" outcome="user_register" value="#{msg.LINK_GUEST_REGISTER}" />
</li>
-<<<<<<< HEAD
- <li>
- <h:link title="#{msg.LINK_GUEST_PASSWORD_TITLE}" outcome="user_lost_passwd" value="#{msg.LINK_GUEST_PASSWORD}" />
- </li>
-
- <li>
- <h:link title="#{msg.LINK_GUEST_RESEND_LINK_TITLE}" outcome="user_resend_link" value="#{msg.LINK_GUEST_RESEND_LINK}" />
- </li>
-=======
<ui:fragment rendered="#{userController.isUserNameRequired()}">
<li>
<h:link title="#{msg.LINK_GUEST_PASSWORD_TITLE}" outcome="user_lost_passwd" value="#{msg.LINK_GUEST_PASSWORD}" />
<h:link title="#{msg.LINK_GUEST_RESEND_LINK_TITLE}" outcome="user_resend_link" value="#{msg.LINK_GUEST_RESEND_LINK}" />
</li>
</ui:fragment>
->>>>>>> 4a789c7... Rewritten a lot:
</ul>
</div>
</div>
</ui:define>
<ui:define name="content">
-<<<<<<< HEAD
- <div class="para">
- <!-- TODO Internatialize this somehow //-->
- Noch kein Benutzerkonto? Einfach <h:link id="user_register" outcome="user_register" title="Als Benutzer anmelden">hier</h:link> anmelden.
- </div>
-
- <div class="para">
- <ui:include src="/WEB-INF/templates/guest/user/guest_login_form.tpl" />
- </div>
-
- <div class="para">
- <h:link id="user_lost_password" outcome="user_lost_passwd" title="#{msg.LINK_TITLE_GUEST_LOGIN_LOST_PASSWORD}" value="#{msg.LINK_GUEST_LOGIN_LOST_PASSWORD}" />
- </div>
-=======
<ui:fragment rendered="#{userController.isUserNameRequired()}">
<div class="para">
<!-- TODO Internatialize this somehow //-->
<ui:fragment rendered="#{not userController.isUserNameRequired()}">
<h:outputText styleClass="errors" value="#{msg.ERROR_GUEST_USER_LOGIN_DEACTIVATED}" />
</ui:fragment>
->>>>>>> 4a789c7... Rewritten a lot:
</ui:define>
</ui:composition>
</html>