blob: 78f2bdeb8ffdd8815316bb5f68ba390db8641309 [file] [log] [blame]
import com.opensymphony.util.BeanUtils;
import org.apache.struts.apps.mailreader.dao.User;
public class Register extends MailReaderSupport {
public String input() throws Exception {
User user = getUser();
boolean editing = (null != user);
if (editing) {
setTask(EDIT);
BeanUtils.setValues(this, user, null);
setPassword(null);
} else {
setTask(CREATE);
}
return INPUT;
}
public String save()
throws Exception {
User user = getUser();
boolean editing = (null != user);
if (editing) {
// FIXME: Any way to call the RegisterSave validators from here?
String newPassword = getPassword();
boolean changing = ((null != newPassword) && (newPassword.length() > 0));
if (!changing) {
setPassword(user.getPassword());
} else {
String confirmPassword = getPassword2();
boolean matches = ((null != confirmPassword)
&& (confirmPassword.equals(newPassword)));
if (matches) {
user.setPassword(newPassword);
} else {
addActionError(getText(ERROR_PASSWORD_MATCH));
return INPUT;
}
}
BeanUtils.setValues(user, this, null);
}
if (!editing) {
user = findUser(getUsername(), getPassword());
boolean haveUser = (user != null);
if (haveUser) {
addActionError(getText(ERROR_USERNAME_UNIQUE));
return INPUT;
}
user = createUser(getUsername(), getPassword());
setUser(user);
}
saveUser();
return SUCCESS;
}
}