package net.techreadiness.customer.action;
import java.util.List;
import net.techreadiness.service.common.ValidationError;
import net.techreadiness.service.exception.ValidationServiceException;
import net.techreadiness.ui.BaseAction;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.Action;
@Results({ @Result(name = Action.SUCCESS, type = "redirectAction", params = { "actionName", "select-scope" }),
@Result(name = Action.ERROR, type = "lastAction", params = { "actionName", "change-password" }) })
public class ChangePasswordAcceptAction extends BaseAction {
private static final long serialVersionUID = 1L;
private String passwordField;
private String confirmPasswordField;
private String token;
private String username;
@Override
public String execute() {
if (!userService.isTokenValid(getServiceContext(), username, token)) {
addFieldError("token", "This username/token combination is not valid.");
} else {
try {
userService.changePassword(getServiceContext(), username, passwordField, confirmPasswordField);
userService.clearTokens(getServiceContext(), username);
} catch (ValidationServiceException e) {
List<ValidationError> errors = e.getFaultInfo().getAttributeErrors();
for (ValidationError validationError : errors) {
addFieldError(validationError.getFieldName(), validationError.getOnlineMessage());
}
}
}
if (hasErrors()) {
return Action.ERROR;
}
return SUCCESS;
}
public void setPasswordField(String passwordField) {
this.passwordField = passwordField;
}
public String getPasswordField() {
return passwordField;
}
public void setConfirmPasswordField(String confirmPasswordField) {
this.confirmPasswordField = confirmPasswordField;
}
public String getConfirmPasswordField() {
return confirmPasswordField;
}
public void setToken(String token) {
this.token = token;
}
public String getToken() {
return token;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}