package org.openiam.selfsrvc.usradmin;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openiam.idm.srvc.user.dto.User;
import org.openiam.idm.srvc.user.dto.UserStatusEnum;
import org.openiam.idm.srvc.user.ws.UserDataWebService;
public class UserChangeStatusController extends SimpleFormController {
protected UserDataWebService userMgr;
protected String redirectView;
private static final Log log = LogFactory.getLog(UserChangeStatusController.class);
public UserChangeStatusController() {
super();
}
@Override
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"),true) );
}
protected Object formBackingObject(HttpServletRequest request) throws Exception {
UserChangeStatusCommand statusCommand = new UserChangeStatusCommand();
String personId = request.getParameter("personId");
String status = request.getParameter("status");
User usr = userMgr.getUserWithDependent(personId, false).getUser();
statusCommand.setFirstName(usr.getFirstName());
statusCommand.setLastName(usr.getLastName());
statusCommand.setUserStatus(status);
statusCommand.setUserId(personId);
return statusCommand;
}
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors) throws Exception {
System.out.println("ProfileController: onSubmit");
UserChangeStatusCommand statusCommand =(UserChangeStatusCommand)command;
User usr = userMgr.getUserWithDependent(statusCommand.getUserId(), true).getUser();
log.info("User found - " + usr.getUserId());
usr.setStatus( UserStatusEnum.valueOf(statusCommand.getUserStatus()));
userMgr.updateUserWithDependent(usr, true);
return new ModelAndView(new RedirectView(redirectView+"&mode=1", true));
}
public String getRedirectView() {
return redirectView;
}
public void setRedirectView(String redirectView) {
this.redirectView = redirectView;
}
public UserDataWebService getUserMgr() {
return userMgr;
}
public void setUserMgr(UserDataWebService userMgr) {
this.userMgr = userMgr;
}
}