public String save()

in app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java [69:133]


    public String save() {
        myValidate();

        if (!hasActionErrors()) {

            // We ONLY modify the user currently logged in
            User existingUser = getAuthenticatedUser();

            // copy updated attributes
            getBean().copyTo(existingUser);

            if (StringUtils.isNotEmpty(getBean().getOpenIdUrl())) { 
                try {
                    String openidurl = getBean().getOpenIdUrl();
                    if (openidurl != null && openidurl.endsWith("/")) {
                        openidurl = openidurl.substring(0, openidurl.length() - 1);
                    }
                    existingUser.setOpenIdUrl(openidurl);
                } catch (Exception ex) {
                    log.error("Unexpected error saving user OpenID URL", ex);
                    addError("generic.error.check.logs");
                    return INPUT;
                }
            }

            if (authMethod == AuthMethod.DB_OPENID) {
                if (StringUtils.isEmpty(existingUser.getPassword())
                        && StringUtils.isEmpty(bean.getPasswordText())
                        && StringUtils.isEmpty(bean.getOpenIdUrl())) {
                    addError("userRegister.error.missingOpenIDOrPassword");
                    return INPUT;
                } else if (StringUtils.isNotEmpty(bean.getOpenIdUrl())
                        && StringUtils.isNotEmpty(bean.getPasswordText())) {
                    addError("userRegister.error.bothOpenIDAndPassword");
                    return INPUT;
                }
            }

            // User.password does not allow null, so generate one
            if (authMethod.equals(AuthMethod.OPENID) ||
                    (authMethod.equals(AuthMethod.DB_OPENID) && !StringUtils.isEmpty(bean.getOpenIdUrl()))) {
                String randomString = RandomStringUtils.randomAlphanumeric(255);
                existingUser.resetPassword(randomString);
            }

            // If user set both password and passwordConfirm then reset password
            if (!StringUtils.isEmpty(getBean().getPasswordText()) &&
                    !StringUtils.isEmpty(getBean().getPasswordConfirm())) {
                existingUser.resetPassword(getBean().getPasswordText());
            }

            try {
                // save the updated profile
                UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
                mgr.saveUser(existingUser);
                WebloggerFactory.getWeblogger().flush();
                addMessage("generic.changes.saved");
                return SUCCESS;
            } catch (WebloggerException ex) {
                log.error("ERROR in action", ex);
                addError("Unexpected error doing profile save");
            }
        }
        return INPUT;
    }