package org.openiam.selfsrvc.profile;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.openiam.idm.srvc.org.dto.Organization;
import org.openiam.idm.srvc.org.service.OrganizationDataService;
import org.openiam.idm.srvc.user.dto.Supervisor;
import org.openiam.idm.srvc.user.dto.User;
import org.openiam.idm.srvc.user.ws.UserDataWebService;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Controller to retrieve user information. The information is presented through a readonly view.
* @author suneet
*
*/
public class ViewUserController extends AbstractController {
private static final Log log = LogFactory.getLog(ViewUserController.class);
private String view;
UserDataWebService userManager = null;
OrganizationDataService orgManager = null;
public ViewUserController() {
super();
}
protected ModelAndView handleRequestInternal(HttpServletRequest req,
HttpServletResponse res) throws Exception {
Organization org = new Organization();
User userData = null;
User manager = new User();
log.debug("ViewUserController: handleRequestInternal called.");
String personId = req.getParameter("personId");
// get objects related to the user to show move detail on the view.
userData = userManager.getUserWithDependent(personId,true).getUser();
if (userData.getCompanyId() != null && !userData.getCompanyId().isEmpty()) {
org = orgManager.getOrganization(userData.getCompanyId());
}
// get the supervisor
List<Supervisor> supervisors = userManager.getSupervisors(personId).getSupervisorList();
// get the direct reports
List<Supervisor> directReports = userManager.getEmployees(personId).getSupervisorList();
ModelAndView mav = new ModelAndView(view);
mav.addObject("userData", userData);
mav.addObject("org", org);
mav.addObject("directReports", directReports);
mav.addObject("supervisor", supervisors);
return mav;
}
public String getView() {
return view;
}
public void setView(String view) {
this.view = view;
}
public OrganizationDataService getOrgManager() {
return orgManager;
}
public void setOrgManager(OrganizationDataService orgManager) {
this.orgManager = orgManager;
}
public UserDataWebService getUserManager() {
return userManager;
}
public void setUserManager(UserDataWebService userManager) {
this.userManager = userManager;
}
}