X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjjobs%2Fbeans%2Fuser%2Fpassword%2FJobsUserPasswordWebRequestBean.java;h=42fa746f8e24474f374df169722aae2311582679;hb=7f47d8c52a333a812c65df514a613bc6a8559de8;hp=ecbd97bfad1cafa6936a309ba9bedb4646c2a46e;hpb=e6f89a9135105a78e256b86f2c33a36eeab4f86c;p=jjobs-war.git diff --git a/src/java/org/mxchange/jjobs/beans/user/password/JobsUserPasswordWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/user/password/JobsUserPasswordWebRequestBean.java index ecbd97bf..42fa746f 100644 --- a/src/java/org/mxchange/jjobs/beans/user/password/JobsUserPasswordWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/user/password/JobsUserPasswordWebRequestBean.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017 Roland Häder + * Copyright (C) 2016 - 2020 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 @@ -21,11 +21,12 @@ import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Event; 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.jcoreee.utils.FacesUtils; -import org.mxchange.jjobs.beans.BaseJobsController; +import org.mxchange.jjobs.beans.BaseJobsBean; import org.mxchange.jjobs.beans.features.JobsFeaturesWebApplicationController; import org.mxchange.jjobs.beans.user.login.JobsUserLoginWebSessionController; import org.mxchange.jusercore.exceptions.UserNotFoundException; @@ -46,7 +47,7 @@ import org.mxchange.juserlogincore.login.UserLoginUtils; */ @Named ("userPasswordController") @RequestScoped -public class JobsUserPasswordWebRequestBean extends BaseJobsController implements JobsUserPasswordWebRequestController { +public class JobsUserPasswordWebRequestBean extends BaseJobsBean implements JobsUserPasswordWebRequestController { /** * Serial number @@ -115,16 +116,16 @@ public class JobsUserPasswordWebRequestBean extends BaseJobsController implement throw new IllegalStateException("User is not logged-in"); //NOI18N } else if (!this.isRequiredChangePasswordSet()) { // Not all required fields are set - throw new FaceletException("Not all required fields are set."); //NOI18N + throw new FacesException("Not all required fields are set."); //NOI18N } else if (!this.userLoginController.ifCurrentPasswordMatches()) { // Password not matching - throw new FaceletException(new UserPasswordMismatchException(this.userLoginController.getLoggedInUser())); + throw new FacesException(new UserPasswordMismatchException(this.userLoginController.getLoggedInUser())); } else if (!this.featureController.isFeatureEnabled("change_user_password")) { //NOI18N // Editing is not allowed throw new IllegalStateException("User tried to change password."); //NOI18N } else if (!UserLoginUtils.ifPasswordMatches(this.getUserCurrentPassword(), this.userLoginController.getLoggedInUser())) { // Password mismatches - this.showFacesMessage("form_user_change_password:userCurrentPassword", "Entered current password does not matched stored password."); //NOI18N + this.showFacesMessage("form_user_change_password:userCurrentPassword", "Entered current password does not matched stored password.", FacesMessage.SEVERITY_WARN); //NOI18N // Clear bean this.clear(); @@ -133,7 +134,7 @@ public class JobsUserPasswordWebRequestBean extends BaseJobsController implement return ""; //NOI18N } else if (!Objects.equals(this.getUserPassword(), this.getUserPasswordRepeat())) { // Both entered passwords don't match - this.showFacesMessage("form_user_change_password:userPasswordRepeat", "Entered new passwords mismatch."); //NOI18N + this.showFacesMessage("form_user_change_password:userPasswordRepeat", "Entered new passwords mismatch.", FacesMessage.SEVERITY_ERROR); //NOI18N // Clear bean this.clear(); @@ -142,7 +143,7 @@ public class JobsUserPasswordWebRequestBean extends BaseJobsController implement return ""; //NOI18N } else if (Objects.equals(this.getUserCurrentPassword(), this.getUserPassword())) { // New password matches current - this.showFacesMessage("form_user_change_password:userPassword", "Entered new password is same as current password."); //NOI18N + this.showFacesMessage("form_user_change_password:userPassword", "Entered new password is same as current password.", FacesMessage.SEVERITY_WARN); //NOI18N // Clear bean this.clear(); @@ -151,7 +152,7 @@ public class JobsUserPasswordWebRequestBean extends BaseJobsController implement return ""; //NOI18N } else if (this.userLoginController.isPasswordInHistory(this.getUserPassword())) { // Is already in list (to old passwords are ignored) - this.showFacesMessage("form_user_change_password:userPassword", "Entered new password is has already been used some time ago."); //NOI18N + this.showFacesMessage("form_user_change_password:userPassword", "Entered new password is has already been used some time ago.", FacesMessage.SEVERITY_WARN); //NOI18N // Clear bean this.clear(); @@ -169,23 +170,26 @@ public class JobsUserPasswordWebRequestBean extends BaseJobsController implement // Set it in user user.setUserEncryptedPassword(encryptedPassword); + // Init variable + final PasswordHistory passwordHistory; + try { // Get base URL final String baseUrl = FacesUtils.generateBaseUrl(); // All is set, then update password - PasswordHistory passwordHistory = this.userBean.updateUserPassword(user, baseUrl); - - // Fire event - this.userUpdatedPasswordEvent.fire(new UpdatedUserPasswordEvent(passwordHistory, this.getUserPassword())); + passwordHistory = this.userBean.updateUserPassword(user, baseUrl); } catch (final UserNotFoundException | UserStatusUnconfirmedException | UserStatusLockedException ex) { // Clear bean this.clear(); // Throw again - throw new FaceletException(ex); + throw new FacesException(ex); } + // Fire event + this.userUpdatedPasswordEvent.fire(new UpdatedUserPasswordEvent(passwordHistory, this.getUserPassword())); + // Clear bean this.clear();