/*
* ------------------------------------------------------------------------------
* Title: diamelle.admin.security.IndexAction
* Author: Diamelle Technologies
* Overview: Sets up static data required to run the Admin App
* ------------------------------------------------------------------------------
* Copyright (c) 2000-2004 Diamelle Inc. All Rights Reserved.
*
* This SOURCE CODE FILE, which has been provided by Diamelle Technologies as part
* of a Diamelle Software product for use ONLY by licensed users of the product,
* includes CONFIDENTIAL and PROPRIETARY information of Diamelle Technologies.
*
* This code or parts or derivatives of it cannot be used for any commercial
* products without written permission from Diamelle Technologies.
*
* USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS OF THE LICENSE STATEMENT FURNISHED WITH THE PRODUCT.
*
* IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD Diamelle Technologies, ITS
* RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
* CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
* DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
* ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
* DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE CODE FILE.
* ------------------------------------------------------------------------------
* CHANGE CONTROL:
* Last modified by :
* on :
* ------------------------------------------------------------------------------
*/
package org.openiam.selfsrvc;
import java.io.IOException;
import java.rmi.RemoteException;
import java.util.*;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.*;
import org.openiam.idm.srvc.menu.dto.Menu;
import org.openiam.idm.srvc.menu.service.NavigatorDataService;
import org.openiam.idm.srvc.secdomain.dto.SecurityDomain;
import org.openiam.idm.srvc.secdomain.service.SecurityDomainDataService;
import org.springframework.web.struts.DispatchActionSupport;
/**
* @version 1.0
* @author
*/
public class IndexAction extends DispatchActionSupport {
AppConfiguration appConfiguration;
SecurityDomainDataService secDomainService;
NavigatorDataService navigationDataService;
private String publicLeftMenuGroup;
private String publicRightMenuGroup1;
private String publicRightMenuGroup2;
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
System.out.println("IndexAction:execute()..");
ActionErrors err = new ActionErrors();
String expire = request.getParameter("expire");
if (expire != null && expire.equals("1")) {
request.setAttribute("expmsg", "Session has expired. Please login again");
}
HttpSession session = request.getSession();
ServletContext servletContext = getServlet().getServletConfig().getServletContext();
//appConfiguration = (AppConfiguration)getWebApplicationContext().getBean("appConfiguration");
// put the configuration object in session
session.setAttribute("logoUrl", appConfiguration.getLogoUrl());
session.setAttribute("title", appConfiguration.getTitle());
session.setAttribute("defaultLang", appConfiguration.getDefaultLang());
session.setAttribute("welcomePageUrl", appConfiguration.getWelcomePageUrl());
String userId = request.getParameter("userId");
String login = request.getParameter("lg");
session.setAttribute("userId", userId);
session.setAttribute("login", login);
try {
String appId = (String) session.getAttribute("appId");
if (appId != null) {
List<Menu> menus = navigationDataService.menuGroupByUser(appId, userId, appConfiguration.getDefaultLang());
//List menus = loginAccess.getPermissions(userId, appId, appConfiguration.getDefaultLang());
session.setAttribute("topLevelMenus", menus);
}
loadStaticData(session, servletContext);
} catch (Exception e) {
e.printStackTrace();
err.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("error.ejb"));
}
if (!err.isEmpty()) {
saveErrors(request, err);
return (mapping.findForward("failure"));
}
// show the login page first
return mapping.findForward("login");
}
private void loadStaticData(HttpSession session, ServletContext servletContext) throws RemoteException {
//session.setAttribute("operationList", getOperationStatusList());
session.setAttribute("domainList", this.secDomainService.getAllDomainsWithExclude("IDM"));
// load public menus
session.setAttribute("publicLeftMenuGroup",
navigationDataService.menuGroup(publicLeftMenuGroup, appConfiguration.getDefaultLang()));
session.setAttribute("publicRightMenuGroup1",
navigationDataService.menuGroup(publicRightMenuGroup1, appConfiguration.getDefaultLang()));
session.setAttribute("publicRightMenuGroup2",
navigationDataService.menuGroup(publicRightMenuGroup2, appConfiguration.getDefaultLang()));
session.setAttribute("publicRightMenuGroup3",
navigationDataService.menuGroup("CARD", appConfiguration.getDefaultLang()));
}
/* private List getOperationStatusList() throws RemoteException {
ArrayList newCodeList = new ArrayList();
CodeAccess cdAccess = new CodeAccess();
List codeList = cdAccess.getCodesByService("100","IDM","OPERATION","en");
if (codeList != null && codeList.size() > 0) {
newCodeList.add(new LabelValueBean("",""));
for (int i=0; i<codeList.size(); i++) {
StatusCodeValue val = (StatusCodeValue)codeList.get(i);
LabelValueBean label = new LabelValueBean(val.getDescription(),val.getStatusCd());
newCodeList.add(label);
}
}
return newCodeList;
}
*/
public String getPublicLeftMenuGroup() {
return publicLeftMenuGroup;
}
public void setPublicLeftMenuGroup(String publicLeftMenuGroup) {
this.publicLeftMenuGroup = publicLeftMenuGroup;
}
public String getPublicRightMenuGroup1() {
return publicRightMenuGroup1;
}
public void setPublicRightMenuGroup1(String publicRightMenuGroup1) {
this.publicRightMenuGroup1 = publicRightMenuGroup1;
}
public String getPublicRightMenuGroup2() {
return publicRightMenuGroup2;
}
public void setPublicRightMenuGroup2(String publicRightMenuGroup2) {
this.publicRightMenuGroup2 = publicRightMenuGroup2;
}
public NavigatorDataService getNavigationDataService() {
return navigationDataService;
}
public void setNavigationDataService(NavigatorDataService navigationDataService) {
this.navigationDataService = navigationDataService;
}
public AppConfiguration getAppConfiguration() {
return appConfiguration;
}
public void setAppConfiguration(AppConfiguration appConfiguration) {
this.appConfiguration = appConfiguration;
}
public SecurityDomainDataService getSecDomainService() {
return secDomainService;
}
public void setSecDomainService(SecurityDomainDataService secDomainService) {
this.secDomainService = secDomainService;
}
}