package action;
import com.opensymphony.xwork2.ActionSupport;
import pojo.Register;
import pojo.SiteUser;
import service.RegisterService;
import service.SiteUserService;
import util.EmailUtil;
import util.MD5Util;
/**
* User: yumingzhe
* Date: 5/23/12
* Time: 10:50 AM
*/
public class ResetPasswordAction extends ActionSupport {
private String id;
private String secret;
private String instituteId;
private RegisterService registerService;
private SiteUserService siteUserService;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInstituteId() {
return instituteId;
}
public void setInstituteId(String instituteId) {
this.instituteId = instituteId;
}
public SiteUserService getSiteUserService() {
return siteUserService;
}
public void setSiteUserService(SiteUserService siteUserService) {
this.siteUserService = siteUserService;
}
public RegisterService getRegisterService() {
return registerService;
}
public void setRegisterService(RegisterService registerService) {
this.registerService = registerService;
}
public String getUid() {
return id;
}
public void setUid(String uid) {
this.id = uid;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
@Override
public void validate() {
if (this.id == null) {
this.addActionError("Your email validation link is invalid");
}
if (this.secret == null) {
this.addActionError("Your email validation link is invalid");
}
}
@Override
public String execute() throws Exception {
Register register = registerService.getRegisterBySequence(this.secret);
if (register.getId() == Integer.parseInt(this.id)) {
SiteUser siteUser = siteUserService.getSiteUserByInstituteId(this.instituteId);
String newpassword = MD5Util.generateArbitraryString(8);
siteUser.setPassword(MD5Util.hashString(newpassword + siteUser.getSalt()));
siteUserService.updateSiteUser(siteUser);
EmailUtil.sendNewPasswordEmail("smtp.gmail.com", 465, "yumingzhe.pt@gmail.com", "YMZ7565092", siteUser.getUsername(), newpassword, "admin@researchzilla", "新密码", siteUser.getEmail());
this.addActionMessage("Your new account information has been sent to your email!");
return SUCCESS;
}
return ERROR;
}
}