signupform.java

来自「this is for appfuse1.8 source using stru」· Java 代码 · 共 147 行

JAVA
147
字号
package org.appfuse.webapp.action;import java.io.IOException;import java.util.Map;import org.apache.commons.lang.StringUtils;import org.apache.tapestry.IRequestCycle;import org.apache.tapestry.event.PageEvent;import org.apache.tapestry.event.PageRenderListener;import org.apache.tapestry.form.IPropertySelectionModel;import org.apache.tapestry.valid.IValidationDelegate;import org.apache.tapestry.valid.ValidationConstraint;import org.appfuse.Constants;import org.appfuse.model.User;import org.appfuse.service.MailEngine;import org.appfuse.service.RoleManager;import org.appfuse.service.UserExistsException;import org.appfuse.service.UserManager;import org.appfuse.util.StringUtil;import org.appfuse.webapp.util.RequestUtil;import org.springframework.context.ApplicationContext;import org.springframework.mail.SimpleMailMessage;public abstract class SignupForm extends BasePage implements PageRenderListener {    private IPropertySelectionModel countries;      public abstract UserManager getUserManager();    public abstract void setUserManager(UserManager manager);    public abstract RoleManager getRoleManager();    public abstract void setRoleManager(RoleManager manager);    public abstract void setUser(User user);    public abstract User getUser();        public IPropertySelectionModel getCountries() {        if (countries == null) {            countries = new CountryModel(getLocale());        }        return countries;    }        public void pageBeginRender(PageEvent event) {        if (getUser() == null && !event.getRequestCycle().isRewinding()) {            setUser(new User());        } else if (event.getRequestCycle().isRewinding()) {            setUser(new User());        }     }        public void cancel(IRequestCycle cycle) throws IOException {        if (log.isDebugEnabled()) {            log.debug("entered cancel method");        }        getResponse().sendRedirect(getRequest().getContextPath());    }        public void save(IRequestCycle cycle) throws UserExistsException {        if (log.isDebugEnabled()) {            log.debug("entered save method");        }                // make sure the password fields match        IValidationDelegate delegate = getValidationDelegate();        if (!StringUtils.equals(getUser().getPassword(), getUser().getConfirmPassword())) {            addError(delegate, "confirmPasswordField",                      format("errors.twofields", getMessage("user.confirmPassword"),                              getMessage("user.password")),                     ValidationConstraint.CONSISTENCY);        }                if (delegate.getHasErrors()) {             return;         }                String algorithm =            (String) getConfiguration().get(Constants.ENC_ALGORITHM);        if (algorithm == null) { // should only happen for test case            if (log.isDebugEnabled()) {                log.debug("assuming testcase, setting algorithm to 'SHA'");            }            algorithm = "SHA";        }                User user = getUser();                user.setPassword(StringUtil.encodePassword(user.getPassword(), algorithm));        user.setEnabled(Boolean.TRUE);        // Set the default user role on this new user        user.addRole(getRoleManager().getRole(Constants.USER_ROLE));                getUserManager().saveUser(getUser());                try {            getUserManager().saveUser(user);        } catch (UserExistsException e) {            log.warn(e.getMessage());            addError(delegate, "usernameField",                     format("errors.existing.user", user.getUsername(),                            user.getEmail()), ValidationConstraint.CONSISTENCY);            // redisplay the unencrypted passwords            user.setPassword(user.getConfirmPassword());            return;        }        // Set cookies for auto-magical login ;-)        String loginCookie = getUserManager().createLoginCookie(user.getUsername());        RequestUtil.setCookie(getResponse(),                               Constants.LOGIN_COOKIE, loginCookie,                              getRequest().getContextPath());        getSession().setAttribute(Constants.REGISTERED, Boolean.TRUE);        // Send user an e-mail        if (log.isDebugEnabled()) {            log.debug("Sending user '" + user.getUsername()                    + "' an account information e-mail");        }        Map global = (Map) getGlobal();        ApplicationContext ctx =            (ApplicationContext) global.get(BaseEngine.APPLICATION_CONTEXT_KEY);                SimpleMailMessage message = (SimpleMailMessage) ctx.getBean("mailMessage");        message.setTo(user.getFullName() + "<" + user.getEmail() + ">");                StringBuffer msg = new StringBuffer();        msg.append(getMessage("signup.email.message"));        msg.append("\n\n" + getMessage("user.username"));        msg.append(": " + user.getUsername() + "\n");        msg.append(getMessage("user.password") + ": ");        msg.append(user.getPassword());        msg.append("\n\nLogin at: " + RequestUtil.getAppURL(getRequest()));        message.setText(msg.toString());                message.setSubject(getMessage("signup.email.subject"));                MailEngine engine = (MailEngine) ctx.getBean("mailEngine");        engine.send(message);                MainMenu nextPage = (MainMenu) cycle.getPage("mainMenu");        nextPage.setMessage(getMessage("user.registered"));        cycle.activate(nextPage);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?