]> git.mxchange.org Git - pizzaservice-war.git/commitdiff
added pre-checks on user account
authorRoland Häder <roland@mxchange.org>
Mon, 23 May 2016 12:53:02 +0000 (14:53 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 25 May 2016 17:54:16 +0000 (19:54 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/pizzaapplication/beans/resendlink/PizzaResendLinkWebSessionBean.java

index 761f643c1949e9873ee0822dad1a033039c83661..2e345fac8705734473d6040faf442e70e8a2b540 100644 (file)
@@ -17,9 +17,7 @@
 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;
@@ -28,8 +26,12 @@ import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import org.mxchange.jcoreee.utils.FacesUtils;
 import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException;
+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.pizzaapplication.beans.BasePizzaController;
+import org.mxchange.pizzaapplication.beans.localization.PizzaLocalizationSessionController;
 import org.mxchange.pizzaapplication.beans.user.PizzaUserWebSessionController;
 
 /**
@@ -57,7 +59,13 @@ public class PizzaResendLinkWebSessionBean extends BasePizzaController implement
        private ResendLinkSessionBeanRemote emailBean;
 
        /**
-        * User controller
+        * Localization controller
+        */
+       @Inject
+       private PizzaLocalizationSessionController localizationController;
+
+       /**
+        * Regular user controller
         */
        @Inject
        private PizzaUserWebSessionController userController;
@@ -98,14 +106,23 @@ public class PizzaResendLinkWebSessionBean extends BasePizzaController implement
                        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();
+               // Is the user account already confirmed?
+               if (user.getUserAccountStatus() == UserAccountStatus.CONFIRMED) {
+                       // Then abort here
+                       throw new FaceletException(new UserStatusConfirmedException(user));
+               } else if (user.getUserAccountStatus() == UserAccountStatus.LOCKED) {
+                       // User account is locked
+                       throw new FaceletException(new UserStatusLockedException(user));
+               } 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();
 
                // Call EJB and return redirect target
-               this.emailBean.resendConfirmationLink(user, locale, baseUrl);
+               this.emailBean.resendConfirmationLink(user, this.localizationController.getLocale(), baseUrl);
 
                // Clear this bean
                this.clear();