]> git.mxchange.org Git - pizzaservice-war.git/commitdiff
Don't cherry-pick:
authorRoland Häder <roland@mxchange.org>
Sat, 12 Nov 2022 20:40:39 +0000 (21:40 +0100)
committerRoland Häder <roland@mxchange.org>
Sat, 12 Nov 2022 20:40:39 +0000 (21:40 +0100)
- Fixed some stuff

src/java/org/mxchange/jfinancials/beans/user/register/FinancialsUserRegisterWebRequestBean.java [deleted file]
src/java/org/mxchange/pizzaapplication/beans/user/PizzaAdminUserWebRequestBean.java
src/java/org/mxchange/pizzaapplication/beans/user/register/PizzaUserRegisterWebRequestBean.java
web/WEB-INF/templates/login/user/user_enter_current_password.tpl

diff --git a/src/java/org/mxchange/jfinancials/beans/user/register/FinancialsUserRegisterWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/user/register/FinancialsUserRegisterWebRequestBean.java
deleted file mode 100644 (file)
index b583880..0000000
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Copyright (C) 2016 - 2022 Free Software Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jfinancials.beans.user.register;
-
-import java.util.Objects;
-import javax.ejb.EJB;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.event.Event;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.Any;
-import javax.faces.FacesException;
-import javax.faces.application.FacesMessage;
-import javax.inject.Inject;
-import javax.inject.Named;
-import org.mxchange.jcontacts.model.contact.Contact;
-import org.mxchange.jcontacts.model.contact.UserContact;
-import org.mxchange.jcoreee.utils.FacesUtils;
-import org.mxchange.jfinancials.beans.BaseFinancialsBean;
-import org.mxchange.jfinancials.beans.contact.FinancialsContactWebRequestController;
-import org.mxchange.jfinancials.beans.features.FinancialsFeaturesWebApplicationController;
-import org.mxchange.jfinancials.beans.localization.FinancialsLocalizationSessionController;
-import org.mxchange.jfinancials.beans.user.FinancialsUserWebRequestController;
-import org.mxchange.jfinancials.beans.user.list.FinancialsUserListWebViewController;
-import org.mxchange.jusercore.exceptions.DataRepeatMismatchException;
-import org.mxchange.jusercore.exceptions.EmailAddressAlreadyRegisteredException;
-import org.mxchange.jusercore.exceptions.UserNameAlreadyRegisteredException;
-import org.mxchange.jusercore.model.user.LoginUser;
-import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jusercore.model.user.password_history.PasswordHistory;
-import org.mxchange.jusercore.model.user.password_history.UserPasswordHistory;
-import org.mxchange.jusercore.model.user.profilemodes.ProfileMode;
-import org.mxchange.jusercore.model.user.status.UserAccountStatus;
-import org.mxchange.jusercore.model.utils.UserUtils;
-import org.mxchange.juserlogincore.events.registration.ObservableUserRegisteredEvent;
-import org.mxchange.juserlogincore.events.registration.UserRegisteredEvent;
-import org.mxchange.juserlogincore.events.user.password_change.ObservableUpdatedUserPasswordEvent;
-import org.mxchange.juserlogincore.events.user.password_change.UpdatedUserPasswordEvent;
-import org.mxchange.juserlogincore.login.UserLoginUtils;
-import org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote;
-
-/**
- * A web bean for user registration
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-@Named ("userRegistrationController")
-@RequestScoped
-public class FinancialsUserRegisterWebRequestBean extends BaseFinancialsBean implements FinancialsUserRegisterWebRequestController {
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 47_828_986_719_691_592L;
-
-       /**
-        * Contact controller
-        */
-       @Inject
-       private FinancialsContactWebRequestController contactController;
-
-       /**
-        * Features controller
-        */
-       @Inject
-       private FinancialsFeaturesWebApplicationController featureController;
-
-       /**
-        * Localization controller
-        */
-       @Inject
-       private FinancialsLocalizationSessionController localizationController;
-
-       /**
-        * Remote register session-scoped bean
-        */
-       @EJB (lookup = "java:global/jfinancials-ejb/userRegistration!org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote")
-       private UserRegistrationSessionBeanRemote registerBean;
-
-       /**
-        * User list controller
-        */
-       @Inject
-       private FinancialsUserListWebViewController userListController;
-
-       /**
-        * User name
-        */
-       private String userName;
-
-       /**
-        * User password (clear-text from web form)
-        */
-       private String userPassword;
-
-       /**
-        * An event being fired when a user password was changed
-        */
-       @Inject
-       @Any
-       private Event<ObservableUpdatedUserPasswordEvent> userPasswordChangedEvent;
-
-       /**
-        * User password repeated (clear-text from web form)
-        */
-       private String userPasswordRepeat;
-
-       /**
-        * Whether the user wants a public profile
-        */
-       private ProfileMode userProfileMode;
-
-       /**
-        * An event being fired when a new user has registered
-        */
-       @Inject
-       @Any
-       private Event<ObservableUserRegisteredEvent> userRegisteredEvent;
-
-       /**
-        * Default constructor
-        */
-       public FinancialsUserRegisterWebRequestBean () {
-               // Call super constructor
-               super();
-       }
-
-       /**
-        * Event observer for user password changes
-        * <p>
-        * @param event Event being fired
-        */
-       public void afterUserPasswordChangedEvent (@Observes final ObservableUpdatedUserPasswordEvent event) {
-               // Is it valid?
-               if (null == event) {
-                       // Throw NPE
-                       throw new NullPointerException("event is null"); //NOI18N
-               } else if (event.getUserPassword() == null) {
-                       // Throw NPE
-                       throw new NullPointerException("event.userPassword is null"); //NOI18N
-               } else if (event.getUserPassword().isEmpty()) {
-                       // Throw NPE
-                       throw new IllegalArgumentException("event.userPassword is empty"); //NOI18N
-               }
-
-               // Set it here
-               this.setUserPassword(event.getUserPassword());
-               this.setUserPasswordRepeat(event.getUserPassword());
-       }
-
-       /**
-        * Registers the user, if not found. Otherwise this method should throw an
-        * exception.
-        * <p>
-        * @return Redirection target
-        */
-       public String doFinishRegistration () {
-               // Is registration enabled?
-               if (!this.featureController.isFeatureEnabled("user_registration")) { //NOI18N
-                       // Is not enabled
-                       throw new FacesException("Registration is disabled."); //NOI18N
-               }
-
-               // Get user instance
-               final User user = this.createUserInstance(true);
-
-               // Null random password means registration requires user-entered password
-               String randomPassword = null;
-
-               // Is the user already used?
-               if (null == user) {
-                       // user must be set
-                       throw new NullPointerException("user is null after createUserInstance() was called"); //NOI18N
-               } else if (!this.isRequiredPersonalDataSet()) {
-                       // Not all required fields are set
-                       throw new FacesException("Not all required fields are set."); //NOI18N
-               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userListController.isUserNameRegistered(user))) { //NOI18N
-                       // Is multi-page enabled?
-                       if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // User name is already used, should not happen here
-                               throw new FacesException(new UserNameAlreadyRegisteredException(user));
-                       } else {
-                               // May happen here, clear user name
-                               this.clearUserName();
-
-                               // Output message
-                               this.showFacesMessage("form_register_single:userName", "ERROR_USER_NAME_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
-                               return ""; //NOI18N
-                       }
-               } else if (this.contactController.isEmailAddressRegistered(user.getUserContact())) {
-                       // Is multi-page enabled?
-                       if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // Email address has already been taken, should not happen here
-                               throw new FacesException(new EmailAddressAlreadyRegisteredException(user));
-                       } else {
-                               // May happen here, reset fields
-                               this.contactController.clearEmailAddresses();
-                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESS_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
-                               return ""; //NOI18N
-                       }
-               } else if (!this.contactController.isSameEmailAddressEntered()) {
-                       // Is multi-page enabled?
-                       if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // Not same email address entered, should not happen here
-                               throw new FacesException(new DataRepeatMismatchException("Email addresses not matching.")); //NOI18N
-                       } else {
-                               // May happen here, reset fields
-                               this.contactController.clearEmailAddresses();
-                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING", FacesMessage.SEVERITY_INFO); //NOI18N
-                               return ""; //NOI18N
-                       }
-               } else if (!this.isSamePasswordEntered()) {
-                       // Is multi-page enabled?
-                       if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // Not same password entered, should no longer happen here
-                               throw new FacesException(new DataRepeatMismatchException("Passwords not matching.")); //NOI18N
-                       } else if (this.ifBothPasswordsEmptyAllowed()) {
-                               // Both passwords are left empty and is allowed, then generate a random password
-                               randomPassword = UserLoginUtils.createRandomPassword(FinancialsUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
-
-                               // Generate (ignored) password-history
-                               final PasswordHistory passwordHistory = new UserPasswordHistory(randomPassword, user);
-
-                               // Fire event
-                               this.userPasswordChangedEvent.fire(new UpdatedUserPasswordEvent(passwordHistory, randomPassword));
-                       }
-               }
-
-               // Encrypt password
-               final String encryptedPassword = UserLoginUtils.encryptPassword(this.getUserPassword());
-
-               // Set it here
-               user.setUserEncryptedPassword(encryptedPassword);
-
-               // Is developer mode?
-               if (this.isDebugModeEnabled("register")) { //NOI18N
-                       // For debugging/programming only:
-                       user.setUserAccountStatus(UserAccountStatus.CONFIRMED);
-               } else {
-                       // No debugging of this part
-                       user.setUserAccountStatus(UserAccountStatus.UNCONFIRMED);
-
-                       // Ask EJB for generating a not-existing confirmation key
-                       final String confirmKey = this.registerBean.generateConfirmationKey(user);
-
-                       // Set it in user
-                       user.setUserConfirmKey(confirmKey);
-               }
-
-               // Init variable
-               final User registeredUser;
-
-               try {
-                       // Get base URL
-                       final String baseUrl = FacesUtils.generateBaseUrl();
-
-                       // Call bean
-                       registeredUser = this.registerBean.registerUser(user, baseUrl, randomPassword);
-
-                       // The id number should be set
-                       assert (registeredUser.getUserId() instanceof Long) : "registeredUser.userId is null after registerUser() was called."; //NOI18N
-               } catch (final UserNameAlreadyRegisteredException | EmailAddressAlreadyRegisteredException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
-
-               // Fire event
-               this.userRegisteredEvent.fire(new UserRegisteredEvent(registeredUser));
-
-               // All fine, redirect to proper page
-               return "user_register_done"; //NOI18N
-       }
-
-       /**
-        * Handles registration request send from first page. The (maybe) entered
-        * user name and email address is not used and that privacy and T&C are
-        * accepted.
-        * <p>
-        * @return Redirect
-        */
-       public String doRegisterMultiPage1 () {
-               // Is registration enabled?
-               if (!this.featureController.isFeatureEnabled("user_registration")) { //NOI18N
-                       // Is not enabled
-                       throw new FacesException("Registration is disabled."); //NOI18N
-               }
-
-               // Get user instance
-               final User user = this.createUserInstance(false);
-
-               // First check if user is not null and user name is not used + if same email address is entered
-               if (null == user) {
-                       // user must be set
-                       throw new NullPointerException("user is null after createUserInstance() was called"); //NOI18N
-               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userListController.isUserNameRegistered(user))) { //NOI18N
-                       // User name is already used, so clear it
-                       this.clearUserName();
-
-                       // Output message
-                       this.showFacesMessage("form_register_page1:userName", "ERROR_USER_NAME_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
-                       return ""; //NOI18N
-               } else if (!this.contactController.isSameEmailAddressEntered()) {
-                       // Not same email address entered, clear both
-                       this.contactController.clearEmailAddresses();
-                       this.showFacesMessage("form_register_page1:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING", FacesMessage.SEVERITY_WARN); //NOI18N
-                       return ""; //NOI18N
-               } else if (!this.isSamePasswordEntered()) {
-                       // Is multi-page enabled?
-                       if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // Clear passwords
-                               this.clearUserPasswords();
-
-                               // Output faces message
-                               this.showFacesMessage("form_register_page1:userPassword", "ERROR_USER_PASSWORD_EMPTY", FacesMessage.SEVERITY_WARN); //NOI18N
-                               this.showFacesMessage("form_register_page1:userPasswordRepeat", "ERROR_USER_PASSWORD_REPEAT_EMPTY", FacesMessage.SEVERITY_WARN); //NOI18N
-                               return ""; //NOI18N
-                       } else if (this.ifBothPasswordsEmptyAllowed()) {
-                               // Both passwords are left empty and is allowed, then generate a random password
-                               final String randomPassword = UserLoginUtils.createRandomPassword(FinancialsUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
-
-                               // Generate (ignored) password-history
-                               final PasswordHistory passwordHistory = new UserPasswordHistory(randomPassword, user);
-
-                               // Fire event
-                               this.userPasswordChangedEvent.fire(new UpdatedUserPasswordEvent(passwordHistory, randomPassword));
-                       }
-               }
-
-               // Create half contact instance with email address
-               final Contact contact = new UserContact();
-               contact.setContactEmailAddress(this.contactController.getEmailAddress());
-
-               // Set contact in user
-               user.setUserContact(contact);
-
-               // Check if email address is registered
-               if (this.contactController.isEmailAddressRegistered(user.getUserContact())) {
-                       // Email address has already been taken, clear both
-                       this.contactController.clearEmailAddresses();
-                       this.showFacesMessage("form_register_page1:emailAddress", "ERROR_EMAIL_ADDRESS_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
-                       return ""; //NOI18N
-               }
-
-               // Now only redirect to next page as the JSF does it
-               return "user_register_page2"; //NOI18N
-       }
-
-       /**
-        * Getter for user name
-        * <p>
-        * @return User name
-        */
-       public String getUserName () {
-               return this.userName;
-       }
-
-       /**
-        * Setter for user name
-        * <p>
-        * @param userName User name
-        */
-       public void setUserName (final String userName) {
-               this.userName = userName;
-       }
-
-       /**
-        * Getter for clear-text user password
-        * <p>
-        * @return Clear-text user password
-        */
-       public String getUserPassword () {
-               return this.userPassword;
-       }
-
-       /**
-        * Setter for clear-text user password
-        * <p>
-        * @param userPassword Clear-text user password
-        */
-       public void setUserPassword (final String userPassword) {
-               this.userPassword = userPassword;
-       }
-
-       /**
-        * Getter for clear-text user password repeated
-        * <p>
-        * @return Clear-text user password repeated
-        */
-       public String getUserPasswordRepeat () {
-               return this.userPasswordRepeat;
-       }
-
-       /**
-        * Setter for clear-text user password repeated
-        * <p>
-        * @param userPasswordRepeat Clear-text user password repeated
-        */
-       public void setUserPasswordRepeat (final String userPasswordRepeat) {
-               this.userPasswordRepeat = userPasswordRepeat;
-       }
-
-       /**
-        * Getter for user profile mode
-        * <p>
-        * @return User profile mode
-        */
-       public ProfileMode getUserProfileMode () {
-               return this.userProfileMode;
-       }
-
-       /**
-        * Setter for user profile mode
-        * <p>
-        * @param userProfileMode User profile mode
-        */
-       public void setUserProfileMode (final ProfileMode userProfileMode) {
-               this.userProfileMode = userProfileMode;
-       }
-
-       @Override
-       public boolean isRequiredChangePersonalDataSet () {
-               return ((this.getUserProfileMode() != null) &&
-                               (this.getUserName() != null) &&
-                               (!this.getUserName().isEmpty()) &&
-                               (this.contactController.isRequiredChangePersonalDataSet()));
-       }
-
-       /**
-        * Clears user name
-        */
-       private void clearUserName () {
-               // Clear it
-               this.setUserName(null);
-       }
-
-       /**
-        * Clears both user passwords
-        */
-       private void clearUserPasswords () {
-               // Clear both
-               this.setUserPassword(null);
-               this.setUserPasswordRepeat(null);
-       }
-
-       /**
-        * Creates an instance from all properties
-        * <p>
-        * @param createContactData Whether contact data should be created
-        * <p>
-        * @return A user instance
-        */
-       private User createUserInstance (final boolean createContactData) {
-               // Required personal data must be set
-               assert (this.isRequiredPersonalDataSet()) : "All required personal data must be set before invoking this method."; //NOI18N
-
-               // Is user name required?
-               if (!this.featureController.isFeatureEnabled("user_login_require_username")) {
-                       // Init variables
-                       String randomName = null;
-                       boolean isUsernameFree = false;
-
-                       // Get full list
-                       for (final User user : this.userListController.getAllUsers()) {
-                               // Loop until a user name is found
-                               while ((randomName == null) || (randomName.equals(user.getUserName()))) {
-                                       // Generate random name
-                                       randomName = UserUtils.generateRandomUserName();
-                                       isUsernameFree = true;
-                               }
-
-                               // Is non-existing username found
-                               if (isUsernameFree) {
-                                       // Also stop looping here
-                                       break;
-                               }
-                       }
-
-                       // Set it and inivisible profile
-                       this.setUserName(randomName);
-                       this.setUserProfileMode(ProfileMode.INVISIBLE);
-
-                       // Generate random password
-                       final String randomPassword = UserLoginUtils.createRandomPassword(FinancialsUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
-
-                       // Set random password
-                       this.setUserPassword(randomPassword);
-                       this.setUserPasswordRepeat(randomPassword);
-               }
-
-               // Create new user instance
-               final User user = new LoginUser();
-
-               // Set user name profile mode and locale
-               user.setUserName(this.getUserName());
-               user.setUserProfileMode(this.getUserProfileMode());
-               user.setUserLocale(this.localizationController.getLocale());
-
-               // Is multiple registration page
-               if ((createContactData) || (!this.featureController.isFeatureEnabled("user_register_multiple_page"))) { //NOI18N
-                       // Create contact instance
-                       final Contact contact = this.contactController.createContactInstance();
-
-                       // Set contact in user
-                       user.setUserContact(contact);
-               }
-
-               // Return it
-               return user;
-       }
-
-       /**
-        * Checks if both user passwords are left empty and if this is enabled
-        * (allowed) in context parameter. If true, the calling bean should create a
-        * random password (preferable with UserUtils.createRandomPassword() and set
-        * it in both user password fields.
-        * <p>
-        * @return Whether empty passwords are allowed
-        */
-       private boolean ifBothPasswordsEmptyAllowed () {
-               // Check feature first
-               return ((this.featureController.isFeatureEnabled("allow_user_registration_empty_password")) && //NOI18N
-                               ((this.getUserPassword() == null) || (this.getUserPassword().isEmpty())) &&
-                               ((this.getUserPasswordRepeat() == null) || (this.getUserPasswordRepeat().isEmpty())));
-       }
-
-       /**
-        * Checks whether all required personal data is set
-        * <p>
-        * @return Whether the required personal data is set
-        */
-       private boolean isRequiredPersonalDataSet () {
-               // Check conditions based on of multi-page registration is enabled
-               if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                       // Multiple registration page
-                       return this.contactController.isRequiredPersonalDataSet();
-               } else {
-                       // Single registration page
-                       return (((this.getUserName() != null) || (!this.featureController.isFeatureEnabled("user_login_require_username"))) && //NOI18N
-                                       (this.getUserProfileMode() != null) &&
-                                       (this.contactController.isRequiredPersonalDataSet()) &&
-                                       (this.getUserPassword() != null) &&
-                                       (this.getUserPasswordRepeat() != null));
-               }
-       }
-
-       /**
-        * Checks whether same passwords has been entered
-        * <p>
-        * @return Whether same passwords has been entered
-        */
-       private boolean isSamePasswordEntered () {
-               return ((!this.getUserPassword().isEmpty()) && (Objects.equals(this.getUserPassword(), this.getUserPasswordRepeat())));
-       }
-
-}
index b4e8252af8efa6c4068250ee67e09a000307af7a..e587d51354a6d278539c21909b2da64f31d78358 100644 (file)
@@ -31,8 +31,8 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import org.mxchange.jcontacts.model.contact.Contact;
 import org.mxchange.jcoreee.utils.FacesUtils;
-import org.mxchange.pizzaapplication.beans.features.FinancialsFeaturesWebApplicationController;
-import org.mxchange.pizzaapplication.beans.helper.FinancialsWebViewHelperController;
+import org.mxchange.pizzaapplication.beans.features.PizzaFeaturesWebApplicationController;
+import org.mxchange.pizzaapplication.beans.helper.PizzaWebViewHelperController;
 import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
 import org.mxchange.jusercore.events.user.add.ObservableAdminAddedUserEvent;
 import org.mxchange.jusercore.events.user.delete.AdminDeletedUserEvent;
@@ -103,7 +103,7 @@ public class PizzaAdminUserWebRequestBean extends BasePizzaBean implements Pizza
         * Bean helper
         */
        @Inject
-       private FinancialsWebViewHelperController beanHelper;
+       private PizzaWebViewHelperController beanHelper;
 
        /**
         * Contact instance
@@ -477,7 +477,6 @@ public class PizzaAdminUserWebRequestBean extends BasePizzaBean implements Pizza
                        // Throw as cause
                        throw new FacesException(ex);
                }
->>>>>>> 76975ea0e (Please cherry-pick:):src/java/org/mxchange/jfinancials/beans/user/FinancialsAdminUserWebRequestBean.java
 
                // Fire event
                this.updatedUserDataEvent.fire(new AdminUpdatedUserDataEvent(updatedUser));
@@ -751,7 +750,7 @@ public class PizzaAdminUserWebRequestBean extends BasePizzaBean implements Pizza
                // Is a contact instance in helper set?
                if ((this.getUserPassword() == null && (this.getUserPasswordRepeat() == null)) || ((this.getUserPassword().isEmpty()) && (this.getUserPasswordRepeat().isEmpty()))) {
                        // Empty password entered, then generate one
-                       password = UserLoginUtils.createRandomPassword(FinancialsUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
+                       password = UserLoginUtils.createRandomPassword(PizzaUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
                } else if (!this.isSamePasswordEntered()) {
                        // Both passwords don't match
                        throw new FacesException(new UserPasswordRepeatMismatchException());
index 92c01b5cc737e1486df1f4cc8492653664e52c21..536b4f025f4fe1dad821e541de1f7e6812b8cd20 100644 (file)
  */
 package org.mxchange.pizzaapplication.beans.user.register;
 
+import java.util.Objects;
 import javax.ejb.EJB;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.event.Event;
+import javax.enterprise.event.Observes;
 import javax.enterprise.inject.Any;
-import javax.faces.view.facelets.FaceletException;
+import javax.faces.FacesException;
+import javax.faces.application.FacesMessage;
 import javax.inject.Inject;
 import javax.inject.Named;
 import org.mxchange.jcontacts.model.contact.Contact;
 import org.mxchange.jcontacts.model.contact.UserContact;
 import org.mxchange.jcoreee.utils.FacesUtils;
-import org.mxchange.jusercore.events.user.clear.password.ClearUserPasswordEvent;
-import org.mxchange.jusercore.events.user.clear.password.ObservableClearUserPasswordEvent;
-import org.mxchange.jusercore.events.user.clear.username.ClearUserNameEvent;
-import org.mxchange.jusercore.events.user.clear.username.ObservableClearUserNameEvent;
+import org.mxchange.pizzaapplication.beans.BasePizzaBean;
+import org.mxchange.pizzaapplication.beans.contact.PizzaContactWebRequestController;
+import org.mxchange.pizzaapplication.beans.features.PizzaFeaturesWebApplicationController;
+import org.mxchange.pizzaapplication.beans.localization.PizzaLocalizationSessionController;
+import org.mxchange.pizzaapplication.beans.user.PizzaUserWebRequestController;
+import org.mxchange.pizzaapplication.beans.user.list.PizzaUserListWebViewController;
 import org.mxchange.jusercore.exceptions.DataRepeatMismatchException;
 import org.mxchange.jusercore.exceptions.EmailAddressAlreadyRegisteredException;
 import org.mxchange.jusercore.exceptions.UserNameAlreadyRegisteredException;
+import org.mxchange.jusercore.model.user.LoginUser;
 import org.mxchange.jusercore.model.user.User;
 import org.mxchange.jusercore.model.user.password_history.PasswordHistory;
 import org.mxchange.jusercore.model.user.password_history.UserPasswordHistory;
+import org.mxchange.jusercore.model.user.profilemodes.ProfileMode;
 import org.mxchange.jusercore.model.user.status.UserAccountStatus;
+import org.mxchange.jusercore.model.utils.UserUtils;
 import org.mxchange.juserlogincore.events.registration.ObservableUserRegisteredEvent;
 import org.mxchange.juserlogincore.events.registration.UserRegisteredEvent;
 import org.mxchange.juserlogincore.events.user.password_change.ObservableUpdatedUserPasswordEvent;
 import org.mxchange.juserlogincore.events.user.password_change.UpdatedUserPasswordEvent;
 import org.mxchange.juserlogincore.login.UserLoginUtils;
 import org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote;
-import org.mxchange.pizzaapplication.beans.BasePizzaBean;
-import org.mxchange.pizzaapplication.beans.contact.PizzaContactWebRequestController;
-import org.mxchange.pizzaapplication.beans.features.PizzaFeaturesWebApplicationController;
-import org.mxchange.pizzaapplication.beans.user.PizzaAdminUserWebRequestController;
-import org.mxchange.pizzaapplication.beans.user.PizzaUserWebRequestController;
 
 /**
  * A web bean for user registration
@@ -64,48 +67,44 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
        private static final long serialVersionUID = 47_828_986_719_691_592L;
 
        /**
-        * Administrative user controller
+        * Contact controller
         */
        @Inject
-       private PizzaAdminUserWebRequestController adminUserController;
+       private PizzaContactWebRequestController contactController;
 
        /**
-        * An event being fired when a user name should be cleared
+        * Features controller
         */
        @Inject
-       @Any
-       private Event<ObservableClearUserNameEvent> clearUserNameEvent;
+       private PizzaFeaturesWebApplicationController featureController;
 
        /**
-        * An event being fired when a user password should be cleared
+        * Localization controller
         */
        @Inject
-       @Any
-       private Event<ObservableClearUserPasswordEvent> clearUserPasswordEvent;
+       private PizzaLocalizationSessionController localizationController;
 
        /**
-        * Contact controller
+        * Remote register session-scoped bean
         */
-       @Inject
-       private PizzaContactWebRequestController contactController;
+       @EJB (lookup = "java:global/pizzaapplication-ejb/userRegistration!org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote")
+       private UserRegistrationSessionBeanRemote registerBean;
 
        /**
-        * Features controller
+        * User list controller
         */
        @Inject
-       private PizzaFeaturesWebApplicationController featureController;
+       private PizzaUserListWebViewController userListController;
 
        /**
-        * Remote register session-scoped bean
+        * User name
         */
-       @EJB (lookup = "java:global/pizzaservice-ejb/userRegistration!org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote")
-       private UserRegistrationSessionBeanRemote registerBean;
+       private String userName;
 
        /**
-        * User controller
+        * User password (clear-text from web form)
         */
-       @Inject
-       private PizzaUserWebRequestController userController;
+       private String userPassword;
 
        /**
         * An event being fired when a user password was changed
@@ -114,6 +113,16 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
        @Any
        private Event<ObservableUpdatedUserPasswordEvent> userPasswordChangedEvent;
 
+       /**
+        * User password repeated (clear-text from web form)
+        */
+       private String userPasswordRepeat;
+
+       /**
+        * Whether the user wants a public profile
+        */
+       private ProfileMode userProfileMode;
+
        /**
         * An event being fired when a new user has registered
         */
@@ -129,6 +138,29 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                super();
        }
 
+       /**
+        * Event observer for user password changes
+        * <p>
+        * @param event Event being fired
+        */
+       public void afterUserPasswordChangedEvent (@Observes final ObservableUpdatedUserPasswordEvent event) {
+               // Is it valid?
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getUserPassword() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("event.userPassword is null"); //NOI18N
+               } else if (event.getUserPassword().isEmpty()) {
+                       // Throw NPE
+                       throw new IllegalArgumentException("event.userPassword is empty"); //NOI18N
+               }
+
+               // Set it here
+               this.setUserPassword(event.getUserPassword());
+               this.setUserPasswordRepeat(event.getUserPassword());
+       }
+
        /**
         * Registers the user, if not found. Otherwise this method should throw an
         * exception.
@@ -139,11 +171,11 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                // Is registration enabled?
                if (!this.featureController.isFeatureEnabled("user_registration")) { //NOI18N
                        // Is not enabled
-                       throw new FaceletException("Registration is disabled."); //NOI18N
+                       throw new FacesException("Registration is disabled."); //NOI18N
                }
 
                // Get user instance
-               final User user = this.userController.createUserInstance(true);
+               final User user = this.createUserInstance(true);
 
                // Null random password means registration requires user-entered password
                String randomPassword = null;
@@ -152,50 +184,50 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                if (null == user) {
                        // user must be set
                        throw new NullPointerException("user is null after createUserInstance() was called"); //NOI18N
-               } else if (!this.userController.isRequiredPersonalDataSet()) {
+               } else if (!this.isRequiredPersonalDataSet()) {
                        // Not all required fields are set
-                       throw new FaceletException("Not all required fields are set."); //NOI18N
-               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userController.isUserNameRegistered(user))) { //NOI18N
+                       throw new FacesException("Not all required fields are set."); //NOI18N
+               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userListController.isUserNameRegistered(user))) { //NOI18N
                        // Is multi-page enabled?
                        if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
                                // User name is already used, should not happen here
-                               throw new FaceletException(new UserNameAlreadyRegisteredException(user));
+                               throw new FacesException(new UserNameAlreadyRegisteredException(user));
                        } else {
-                               // May happen here, fire event
-                               this.clearUserNameEvent.fire(new ClearUserNameEvent());
+                               // May happen here, clear user name
+                               this.clearUserName();
 
                                // Output message
-                               this.showFacesMessage("form_register_single:userName", "ERROR_USER_NAME_ALREADY_USED"); //NOI18N
+                               this.showFacesMessage("form_register_single:userName", "ERROR_USER_NAME_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
                                return ""; //NOI18N
                        }
                } else if (this.contactController.isEmailAddressRegistered(user.getUserContact())) {
                        // Is multi-page enabled?
                        if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
                                // Email address has already been taken, should not happen here
-                               throw new FaceletException(new EmailAddressAlreadyRegisteredException(user));
+                               throw new FacesException(new EmailAddressAlreadyRegisteredException(user));
                        } else {
                                // May happen here, reset fields
                                this.contactController.clearEmailAddresses();
-                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESS_ALREADY_USED"); //NOI18N
+                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESS_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
                                return ""; //NOI18N
                        }
                } else if (!this.contactController.isSameEmailAddressEntered()) {
                        // Is multi-page enabled?
                        if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
                                // Not same email address entered, should not happen here
-                               throw new FaceletException(new DataRepeatMismatchException("Email addresses not matching.")); //NOI18N
+                               throw new FacesException(new DataRepeatMismatchException("Email addresses not matching.")); //NOI18N
                        } else {
                                // May happen here, reset fields
                                this.contactController.clearEmailAddresses();
-                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING"); //NOI18N
+                               this.showFacesMessage("form_register_single:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING", FacesMessage.SEVERITY_INFO); //NOI18N
                                return ""; //NOI18N
                        }
-               } else if (!this.userController.isSamePasswordEntered()) {
+               } else if (!this.isSamePasswordEntered()) {
                        // Is multi-page enabled?
                        if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
                                // Not same password entered, should no longer happen here
-                               throw new FaceletException(new DataRepeatMismatchException("Passwords not matching.")); //NOI18N
-                       } else if (this.userController.ifBothPasswordsEmptyAllowed()) {
+                               throw new FacesException(new DataRepeatMismatchException("Passwords not matching.")); //NOI18N
+                       } else if (this.ifBothPasswordsEmptyAllowed()) {
                                // Both passwords are left empty and is allowed, then generate a random password
                                randomPassword = UserLoginUtils.createRandomPassword(PizzaUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
 
@@ -208,7 +240,7 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                }
 
                // Encrypt password
-               final String encryptedPassword = UserLoginUtils.encryptPassword(this.userController.getUserPassword());
+               final String encryptedPassword = UserLoginUtils.encryptPassword(this.getUserPassword());
 
                // Set it here
                user.setUserEncryptedPassword(encryptedPassword);
@@ -228,25 +260,28 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                        user.setUserConfirmKey(confirmKey);
                }
 
+               // Init variable
+               final User registeredUser;
+
                try {
                        // Get base URL
                        final String baseUrl = FacesUtils.generateBaseUrl();
 
                        // Call bean
-                       final User registeredUser = this.registerBean.registerUser(user, baseUrl, randomPassword);
+                       registeredUser = this.registerBean.registerUser(user, baseUrl, randomPassword);
 
                        // The id number should be set
                        assert (registeredUser.getUserId() instanceof Long) : "registeredUser.userId is null after registerUser() was called."; //NOI18N
-
-                       // Fire event
-                       this.userRegisteredEvent.fire(new UserRegisteredEvent(registeredUser));
-
-                       // All fine, redirect to proper page
-                       return "user_register_done"; //NOI18N
                } catch (final UserNameAlreadyRegisteredException | EmailAddressAlreadyRegisteredException ex) {
                        // Continue to throw
-                       throw new FaceletException(ex);
+                       throw new FacesException(ex);
                }
+
+               // Fire event
+               this.userRegisteredEvent.fire(new UserRegisteredEvent(registeredUser));
+
+               // All fine, redirect to proper page
+               return "user_register_done"; //NOI18N
        }
 
        /**
@@ -260,44 +295,44 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                // Is registration enabled?
                if (!this.featureController.isFeatureEnabled("user_registration")) { //NOI18N
                        // Is not enabled
-                       throw new FaceletException("Registration is disabled."); //NOI18N
+                       throw new FacesException("Registration is disabled."); //NOI18N
                }
 
                // Get user instance
-               final User user = this.userController.createUserInstance(false);
+               final User user = this.createUserInstance(false);
 
                // First check if user is not null and user name is not used + if same email address is entered
                if (null == user) {
                        // user must be set
                        throw new NullPointerException("user is null after createUserInstance() was called"); //NOI18N
-               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userController.isUserNameRegistered(user))) { //NOI18N
+               } else if ((this.featureController.isFeatureEnabled("user_login_require_user_name")) && (this.userListController.isUserNameRegistered(user))) { //NOI18N
                        // User name is already used, so clear it
-                       this.clearUserNameEvent.fire(new ClearUserNameEvent());
+                       this.clearUserName();
 
                        // Output message
-                       this.showFacesMessage("form_register_page1:userName", "ERROR_USER_NAME_ALREADY_USED"); //NOI18N
+                       this.showFacesMessage("form_register_page1:userName", "ERROR_USER_NAME_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
                        return ""; //NOI18N
                } else if (!this.contactController.isSameEmailAddressEntered()) {
                        // Not same email address entered, clear both
                        this.contactController.clearEmailAddresses();
-                       this.showFacesMessage("form_register_page1:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING"); //NOI18N
+                       this.showFacesMessage("form_register_page1:emailAddressRepeat", "ERROR_EMAIL_ADDRESSES_MISMATCHING", FacesMessage.SEVERITY_WARN); //NOI18N
                        return ""; //NOI18N
-               } else if (!this.userController.isSamePasswordEntered()) {
+               } else if (!this.isSamePasswordEntered()) {
                        // Is multi-page enabled?
                        if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
-                               // Unset both
-                               this.clearUserPasswordEvent.fire(new ClearUserPasswordEvent());
+                               // Clear passwords
+                               this.clearUserPasswords();
 
                                // Output faces message
-                               this.showFacesMessage("form_register_page1:userPassword", "ERROR_USER_PASSWORD_EMPTY"); //NOI18N
-                               this.showFacesMessage("form_register_page1:userPasswordRepeat", "ERROR_USER_PASSWORD_REPEAT_EMPTY"); //NOI18N
+                               this.showFacesMessage("form_register_page1:userPassword", "ERROR_USER_PASSWORD_EMPTY", FacesMessage.SEVERITY_WARN); //NOI18N
+                               this.showFacesMessage("form_register_page1:userPasswordRepeat", "ERROR_USER_PASSWORD_REPEAT_EMPTY", FacesMessage.SEVERITY_WARN); //NOI18N
                                return ""; //NOI18N
-                       } else if (this.userController.ifBothPasswordsEmptyAllowed()) {
+                       } else if (this.ifBothPasswordsEmptyAllowed()) {
                                // Both passwords are left empty and is allowed, then generate a random password
-                               String randomPassword = UserLoginUtils.createRandomPassword(PizzaUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
+                               final String randomPassword = UserLoginUtils.createRandomPassword(PizzaUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
 
                                // Generate (ignored) password-history
-                               PasswordHistory passwordHistory = new UserPasswordHistory(randomPassword, user);
+                               final PasswordHistory passwordHistory = new UserPasswordHistory(randomPassword, user);
 
                                // Fire event
                                this.userPasswordChangedEvent.fire(new UpdatedUserPasswordEvent(passwordHistory, randomPassword));
@@ -315,7 +350,7 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                if (this.contactController.isEmailAddressRegistered(user.getUserContact())) {
                        // Email address has already been taken, clear both
                        this.contactController.clearEmailAddresses();
-                       this.showFacesMessage("form_register_page1:emailAddress", "ERROR_EMAIL_ADDRESS_ALREADY_USED"); //NOI18N
+                       this.showFacesMessage("form_register_page1:emailAddress", "ERROR_EMAIL_ADDRESS_ALREADY_USED", FacesMessage.SEVERITY_WARN); //NOI18N
                        return ""; //NOI18N
                }
 
@@ -323,5 +358,211 @@ public class PizzaUserRegisterWebRequestBean extends BasePizzaBean implements Pi
                return "user_register_page2"; //NOI18N
        }
 
+       /**
+        * Getter for user name
+        * <p>
+        * @return User name
+        */
+       public String getUserName () {
+               return this.userName;
+       }
+
+       /**
+        * Setter for user name
+        * <p>
+        * @param userName User name
+        */
+       public void setUserName (final String userName) {
+               this.userName = userName;
+       }
+
+       /**
+        * Getter for clear-text user password
+        * <p>
+        * @return Clear-text user password
+        */
+       public String getUserPassword () {
+               return this.userPassword;
+       }
+
+       /**
+        * Setter for clear-text user password
+        * <p>
+        * @param userPassword Clear-text user password
+        */
+       public void setUserPassword (final String userPassword) {
+               this.userPassword = userPassword;
+       }
+
+       /**
+        * Getter for clear-text user password repeated
+        * <p>
+        * @return Clear-text user password repeated
+        */
+       public String getUserPasswordRepeat () {
+               return this.userPasswordRepeat;
+       }
+
+       /**
+        * Setter for clear-text user password repeated
+        * <p>
+        * @param userPasswordRepeat Clear-text user password repeated
+        */
+       public void setUserPasswordRepeat (final String userPasswordRepeat) {
+               this.userPasswordRepeat = userPasswordRepeat;
+       }
+
+       /**
+        * Getter for user profile mode
+        * <p>
+        * @return User profile mode
+        */
+       public ProfileMode getUserProfileMode () {
+               return this.userProfileMode;
+       }
+
+       /**
+        * Setter for user profile mode
+        * <p>
+        * @param userProfileMode User profile mode
+        */
+       public void setUserProfileMode (final ProfileMode userProfileMode) {
+               this.userProfileMode = userProfileMode;
+       }
+
+       @Override
+       public boolean isRequiredChangePersonalDataSet () {
+               return ((this.getUserProfileMode() != null) &&
+                               (this.getUserName() != null) &&
+                               (!this.getUserName().isEmpty()) &&
+                               (this.contactController.isRequiredChangePersonalDataSet()));
+       }
+
+       /**
+        * Clears user name
+        */
+       private void clearUserName () {
+               // Clear it
+               this.setUserName(null);
+       }
+
+       /**
+        * Clears both user passwords
+        */
+       private void clearUserPasswords () {
+               // Clear both
+               this.setUserPassword(null);
+               this.setUserPasswordRepeat(null);
+       }
+
+       /**
+        * Creates an instance from all properties
+        * <p>
+        * @param createContactData Whether contact data should be created
+        * <p>
+        * @return A user instance
+        */
+       private User createUserInstance (final boolean createContactData) {
+               // Required personal data must be set
+               assert (this.isRequiredPersonalDataSet()) : "All required personal data must be set before invoking this method."; //NOI18N
+
+               // Is user name required?
+               if (!this.featureController.isFeatureEnabled("user_login_require_username")) {
+                       // Init variables
+                       String randomName = null;
+                       boolean isUsernameFree = false;
+
+                       // Get full list
+                       for (final User user : this.userListController.getAllUsers()) {
+                               // Loop until a user name is found
+                               while ((randomName == null) || (randomName.equals(user.getUserName()))) {
+                                       // Generate random name
+                                       randomName = UserUtils.generateRandomUserName();
+                                       isUsernameFree = true;
+                               }
+
+                               // Is non-existing username found
+                               if (isUsernameFree) {
+                                       // Also stop looping here
+                                       break;
+                               }
+                       }
+
+                       // Set it and inivisible profile
+                       this.setUserName(randomName);
+                       this.setUserProfileMode(ProfileMode.INVISIBLE);
+
+                       // Generate random password
+                       final String randomPassword = UserLoginUtils.createRandomPassword(PizzaUserWebRequestController.MINIMUM_PASSWORD_LENGTH);
+
+                       // Set random password
+                       this.setUserPassword(randomPassword);
+                       this.setUserPasswordRepeat(randomPassword);
+               }
+
+               // Create new user instance
+               final User user = new LoginUser();
+
+               // Set user name profile mode and locale
+               user.setUserName(this.getUserName());
+               user.setUserProfileMode(this.getUserProfileMode());
+               user.setUserLocale(this.localizationController.getLocale());
+
+               // Is multiple registration page
+               if ((createContactData) || (!this.featureController.isFeatureEnabled("user_register_multiple_page"))) { //NOI18N
+                       // Create contact instance
+                       final Contact contact = this.contactController.createContactInstance();
+
+                       // Set contact in user
+                       user.setUserContact(contact);
+               }
+
+               // Return it
+               return user;
+       }
+
+       /**
+        * Checks if both user passwords are left empty and if this is enabled
+        * (allowed) in context parameter. If true, the calling bean should create a
+        * random password (preferable with UserUtils.createRandomPassword() and set
+        * it in both user password fields.
+        * <p>
+        * @return Whether empty passwords are allowed
+        */
+       private boolean ifBothPasswordsEmptyAllowed () {
+               // Check feature first
+               return ((this.featureController.isFeatureEnabled("allow_user_registration_empty_password")) && //NOI18N
+                               ((this.getUserPassword() == null) || (this.getUserPassword().isEmpty())) &&
+                               ((this.getUserPasswordRepeat() == null) || (this.getUserPasswordRepeat().isEmpty())));
+       }
+
+       /**
+        * Checks whether all required personal data is set
+        * <p>
+        * @return Whether the required personal data is set
+        */
+       private boolean isRequiredPersonalDataSet () {
+               // Check conditions based on of multi-page registration is enabled
+               if (this.featureController.isFeatureEnabled("user_register_multiple_page")) { //NOI18N
+                       // Multiple registration page
+                       return this.contactController.isRequiredPersonalDataSet();
+               } else {
+                       // Single registration page
+                       return (((this.getUserName() != null) || (!this.featureController.isFeatureEnabled("user_login_require_username"))) && //NOI18N
+                                       (this.getUserProfileMode() != null) &&
+                                       (this.contactController.isRequiredPersonalDataSet()) &&
+                                       (this.getUserPassword() != null) &&
+                                       (this.getUserPasswordRepeat() != null));
+               }
+       }
+
+       /**
+        * Checks whether same passwords has been entered
+        * <p>
+        * @return Whether same passwords has been entered
+        */
+       private boolean isSamePasswordEntered () {
+               return ((!this.getUserPassword().isEmpty()) && (Objects.equals(this.getUserPassword(), this.getUserPasswordRepeat())));
+       }
 
 }
index c4947264607b9eacde0a565d9d4a1afcef020279..09d9e825574405606d0ed019e056bbf493c927cb 100644 (file)
@@ -19,7 +19,7 @@
 
                                <div class="table-right">
                                        <p:inputText type="secret" styleClass="input" id="currentPassword" size="10" maxlength="255" value="#{userLoginController.userCurrentPassword}" required="true" validatorMessage="#{msg.ERROR_USER_CURRENT_PASSWORD_MISMATCHING}">
-                                               <!-- <f:validator for="currentPassword" validatorId="FinancialsUserPasswordValidator" /> //-->
+                                               <!-- <f:validator for="currentPassword" validatorId="PizzaUserPasswordValidator" /> //-->
                                        </p:inputText>
                                </div>
                        </h:panelGroup>