X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjjobs%2Fbeans%2Fresendlink%2FJobsResendLinkWebSessionBean.java;h=d06de530ddf9a0a55a3dc23d65bc786f3f7cc24c;hb=d5fda2ab63061743d025611b5751a8346e11c698;hp=41e0a100f6024536e91baded4e67f5cb2e94fe1a;hpb=5d34aa22f20ecad289955312a73b514d4622d75e;p=jjobs-war.git
diff --git a/src/java/org/mxchange/jjobs/beans/resendlink/JobsResendLinkWebSessionBean.java b/src/java/org/mxchange/jjobs/beans/resendlink/JobsResendLinkWebSessionBean.java
index 41e0a100..d06de530 100644
--- a/src/java/org/mxchange/jjobs/beans/resendlink/JobsResendLinkWebSessionBean.java
+++ b/src/java/org/mxchange/jjobs/beans/resendlink/JobsResendLinkWebSessionBean.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 Roland Haeder
+ * Copyright (C) 2016 Roland Häder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -16,8 +16,9 @@
*/
package org.mxchange.jjobs.beans.resendlink;
-import java.text.MessageFormat;
import javax.enterprise.context.SessionScoped;
+import javax.enterprise.event.Event;
+import javax.enterprise.inject.Any;
import javax.faces.view.facelets.FaceletException;
import javax.inject.Inject;
import javax.inject.Named;
@@ -28,16 +29,19 @@ import org.mxchange.jcoreee.utils.FacesUtils;
import org.mxchange.jjobs.beans.BaseJobsController;
import org.mxchange.jjobs.beans.localization.JobsLocalizationSessionController;
import org.mxchange.jjobs.beans.user.JobsUserWebSessionController;
+import org.mxchange.jusercore.events.resendlink.UserResendLinkAccountEvent;
import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException;
+import org.mxchange.jusercore.exceptions.UserNotFoundException;
import org.mxchange.jusercore.exceptions.UserStatusConfirmedException;
import org.mxchange.jusercore.exceptions.UserStatusLockedException;
import org.mxchange.jusercore.model.user.User;
import org.mxchange.jusercore.model.user.status.UserAccountStatus;
+import org.mxchange.jusercore.events.resendlink.ObservableUserResendLinkAccountEvent;
/**
* A web session bean for resending confirmation link
*
- * @author Roland Haeder
+ * @author Roland Häder
*/
@Named ("resendController")
@SessionScoped
@@ -49,7 +53,7 @@ public class JobsResendLinkWebSessionBean extends BaseJobsController implements
private static final long serialVersionUID = 186_078_724_659_153L;
/**
- * Email address 1 (changing)
+ * Email address
*/
private String emailAddress;
@@ -70,6 +74,13 @@ public class JobsResendLinkWebSessionBean extends BaseJobsController implements
@Inject
private JobsUserWebSessionController userController;
+ /**
+ * Event being fired after confirmation link is being sent
+ */
+ @Inject
+ @Any
+ private Event userResendLinkEvent;
+
/**
* Default constructor
*/
@@ -102,35 +113,58 @@ public class JobsResendLinkWebSessionBean extends BaseJobsController implements
// Is the email address really not used?
user = this.userController.lookupUserByEmailAddress(this.getEmailAddress());
} catch (final UserEmailAddressNotFoundException ex) {
+ // Always clear bean
+ this.clear();
+
// Not found, should not happen as the registered validator should find it
- throw new FaceletException(MessageFormat.format("this.emailAddress={0} should be resolveable into User instance.", this.getEmailAddress()), ex); //NOI18N
+ this.showFacesMessage("form_resend_link:", "ERROR_USER_EMAIL_ADDRESS_NOT_FOUND"); //NOI18N
+ return ""; //NOI18N
}
// Is the user account already confirmed?
if (user.getUserAccountStatus() == UserAccountStatus.CONFIRMED) {
+ // Always clear bean
+ this.clear();
+
// Then abort here
- this.showFacesMessage("form_resend_link:resendEmailAddress", new UserStatusConfirmedException(user)); //NOI18N
+ this.showFacesMessage("form_resend_link:resendEmailAddress", "ERROR_USER_STATUS_ALREADY_CONFIRMED"); //NOI18N
return ""; //NOI18N
} else if (user.getUserAccountStatus() == UserAccountStatus.LOCKED) {
+ // Always clear bean
+ this.clear();
+
// User account is locked
- this.showFacesMessage("form_resend_link:resendEmailAddress", new UserStatusLockedException(user)); //NOI18N
+ this.showFacesMessage("form_resend_link:resendEmailAddress", "ERROR_USER_STATUS_LOCKED"); //NOI18N
return ""; //NOI18N
} else if (user.getUserConfirmKey() == null) {
// Status is UNCONFIRMED but confirmation key is NULL
throw new NullPointerException("user.userConfirmKey is null"); //NOI18N
}
- // Get base URL
- String baseUrl = FacesUtils.generateBaseUrl();
+ try {
+ // Get base URL
+ String baseUrl = FacesUtils.generateBaseUrl();
+
+ // Call EJB and return redirect target
+ this.emailBean.resendConfirmationLink(user, this.localizationController.getLocale(), baseUrl);
+ } catch (final UserNotFoundException ex) {
+ // User not found
+ this.showFacesMessage("form_resend_link:resendEmailAddress", "ERROR_USER_NOT_FOUND"); //NOI18N
+ return ""; //NOI18N
+ } catch (final UserStatusLockedException | UserStatusConfirmedException ex) {
+ // Output message, this should not happen as the confirmation key is being removed
+ this.showFacesMessage("form_resend_link:resendEmailAddress", ex); //NOI18N
+ return ""; //NOI18N
+ }
- // Call EJB and return redirect target
- this.emailBean.resendConfirmationLink(user, this.localizationController.getLocale(), baseUrl);
+ // Fire event
+ this.userResendLinkEvent.fire(new UserResendLinkAccountEvent(user));
// Clear this bean
this.clear();
// Return redirect target
- return "resend_done"; //NOI18N
+ return "user_resend_done"; //NOI18N
}
@Override