]> git.mxchange.org Git - addressbook-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 18:37:19 +0000 (20:37 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/addressbook/beans/resendlink/AddressbookResendLinkWebSessionBean.java

index 997ab915b056ecc26ce934eb7b1638b6095d1d57..b8ec7c650c1be06849592e01f4e54b068b3e4d6b 100644 (file)
@@ -17,9 +17,7 @@
 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;
@@ -27,10 +25,14 @@ import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import org.mxchange.addressbook.beans.BaseAddressbookController;
+import org.mxchange.addressbook.beans.localization.AddressbookLocalizationSessionController;
 import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController;
 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;
 
 /**
  * A web session bean for resending confirmation link
@@ -57,7 +59,13 @@ public class AddressbookResendLinkWebSessionBean extends BaseAddressbookControll
        private ResendLinkSessionBeanRemote emailBean;
 
        /**
-        * User controller
+        * Localization controller
+        */
+       @Inject
+       private AddressbookLocalizationSessionController localizationController;
+
+       /**
+        * Regular user controller
         */
        @Inject
        private AddressbookUserWebSessionController userController;
@@ -98,14 +106,23 @@ public class AddressbookResendLinkWebSessionBean extends BaseAddressbookControll
                        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();