@Create @Transactional public void initialize() { LOGGER.debug("hibernateSession.isConnected(): " + hibernateSession.isConnected()); LOGGER.debug("hibernateSession.isOpen(): " + hibernateSession.isOpen()); LOGGER.debug("hibernateSession.getTransaction(): " + hibernateSession.getTransaction()); LOGGER.debug( "hibernateSession.getTransaction().isActive(): " + hibernateSession.getTransaction().isActive()); localeId = charmsUser.getLocaleId(); themeId = charmsUser.getThemeId(); timezoneId = charmsUser.getTimezoneId(); email = charmsUser.getEmail(); LOGGER.debug( "initialized userPropertiesActionBean: " + " " + localeId + " " + themeId + " " + timezoneId); }
private String merge() { charmsUser.setEmail(email); charmsUser.setThemeId(themeId); charmsUser.setTimezoneId(timezoneId); charmsUser.setLocaleId(localeId); // merge the user to the DB, the user is outjected to session charmsUser = (CharmsUser) hibernateSession.merge(charmsUser); hibernateSession.flush(); // set the session parameters from the user values localeSelector.selectLocaleId(charmsUser.getLocaleId()); themeSelector.selectThemeId(charmsUser.getThemeId()); timezoneSelector.selectTimeZoneId(charmsUser.getTimezoneId()); // ((Session)entityManager.getDelegate()).flush(); return "saved"; }
@Transactional public String save() { LOGGER.info("save called"); // FIXME: this is the way to deal with faces messages, performance wise // that is final FacesMessages facesMessages = FacesMessages.instance(); // only persist if all data are correct and valid final boolean old = ((oldPasswd != null) && (oldPasswd.trim().length() > 0)); final boolean new1 = ((passwd != null) && (passwd.trim().length() > 0)); final boolean new2 = ((passwdConfirm != null) && (passwdConfirm.trim().length() > 0)); if (old && new1 && new2) { LOGGER.debug("we have three new passwds"); if (CustomHash.instance().checkPassword(oldPasswd, charmsUser)) { LOGGER.debug("old passwd check is ok"); if (passwd.equals(passwdConfirm)) { LOGGER.debug("new paswords are identical"); // everything is ok facesMessages.addFromResourceBundle("page.user.properties.changed"); charmsUser.setPasswd( CustomHash.instance().generateSaltedHash(passwd, charmsUser.getName())); return merge(); } else { LOGGER.debug("new paswords are NOT identical"); // new passwords dont match facesMessages.addFromResourceBundle( Severity.ERROR, "page.user.properties.confirmWrong", passwdConfirm); return "invalid"; } } else { LOGGER.debug("old passwd wrong, checkPassword failed"); // old passwd wrong facesMessages.addFromResourceBundle( Severity.ERROR, "page.user.properties.oldPasswdWrong", oldPasswd); return "invalid"; } } else if (!old && !new1 && !new2) { LOGGER.debug("all passwds are empty"); // no passwd filled out, now changes to do // set the view properties facesMessages.addFromResourceBundle("page.user.properties.changed"); return merge(); } else { LOGGER.debug("not all passwords are empty, but nt all passwords are filled out"); // at least one of the passwds is missing if (!old) { facesMessages.addFromResourceBundle( Severity.ERROR, "page.user.properties.oldPasswdMissing", oldPasswd); } if (!new1) { facesMessages.addFromResourceBundle( Severity.ERROR, "page.user.properties.newPasswdMissing", passwd); } if (!new2) { facesMessages.addFromResourceBundle( Severity.ERROR, "page.user.properties.confirmPasswdMissing", passwdConfirm); } return "invalid"; } }