package edu.sjtu.infosec.ismp.manager.GOSP.web.actions;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.infosec.ismp.manager.rmi.comm.model.SystemModelInfo;
import org.infosec.ismp.manager.rmi.lm.pfLog.model.SystemLog;
import edu.sjtu.infosec.ismp.manager.GOSP.comm.LogUtil;
import edu.sjtu.infosec.ismp.manager.GOSP.model.SafeStateRecords;
import edu.sjtu.infosec.ismp.manager.GOSP.service.SafeStateRecordsService;
import edu.sjtu.infosec.ismp.manager.GOSP.web.form.SafeStateForm;
import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.DomainService;
import edu.sjtu.infosec.ismp.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
@SuppressWarnings("unused")
/**
* 等保状态信息的录入
*
* @author cxk
*
* Date:2010-11-17
*/
public class AddNetSafeAction extends Action{
/**
* service 接口的注入
*/
private SafeStateRecordsService safeStateRecordsService;
private DomainService domainService;
private SystemLogService systemLogService;
public void setSafeStateRecordsService(
SafeStateRecordsService safeStateRecordsService) {
this.safeStateRecordsService = safeStateRecordsService;
}
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
public void setSystemLogService(SystemLogService systemLogService) {
this.systemLogService = systemLogService;
}
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
/**
* 加载日志信息
*/
LogUtil.init();
SystemLog log = new SystemLog();
String isAdd = (request.getParameter("isAdd")==null)?"0":request.getParameter("isAdd");
String isAll = (request.getParameter("isAll")==null)?"0":request.getParameter("isAll");
request.setAttribute("isAll", isAll);
if(isAdd.endsWith("1")){
SafeStateForm safeStateForm = (SafeStateForm)form;
SafeStateRecords netSafeInfo = new SafeStateRecords();
/**
* 格式化当前系统日期
*/
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateTime = dateFm.format(new java.util.Date().getTime());
java.util.Date timeDate = dateFm.parse(dateTime);
java.sql.Timestamp dTime = new java.sql.Timestamp(timeDate.getTime());
/**
* 从Form表单中得到网络等级保护状况相关的信息
*/
try{
netSafeInfo.setName(safeStateForm.getName());
netSafeInfo.setDesc(safeStateForm.getDesc());
netSafeInfo.setLevel(safeStateForm.getLevel());
netSafeInfo.setState(safeStateForm.getState());
// netSafeInfo.setDomain(domainService.findById(safeStateForm.getDmid()));
netSafeInfo.setCreateTime(dTime);
netSafeInfo.setLastUpdateTime(new Timestamp(new Date().getTime()));
netSafeInfo.setRemark(safeStateForm.getRemark());
safeStateRecordsService.add(netSafeInfo);
/**
* 加入日志相关的信息
*/
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_GOSP);
log.setOperationDesc("网络等级保护状况信息的录入");
log.setControl("成功!");
systemLogService.saveSystemLog(log);
PrintWriter out = response.getWriter();
out = response.getWriter();
response.setContentType("text/html; charset=UTF-8");
out.println("<script language=\"javascript\">");
out.println("window.opener.location.href=window.opener.location.href;");
out.println("window.opener.location.reload();");
out.println("window.close();");
out.println("</script>");
out.close();
}catch(Exception e){
log.setUsername(LogUtil.userName);
log.setRoleName(LogUtil.roleName);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_GOSP);
log.setOperationDesc("网络等级保护状况信息的录入");
log.setControl("失败!");
systemLogService.saveSystemLog(log);
e.printStackTrace();
}
return mapping.findForward("addNetSafeSucc");
}else{
OperatorDetails user = SecurityUserHolder.getCurrentUser();
List<Domain> userDomainList = new ArrayList<Domain>();
if(user != null){
userDomainList = user.getDomainList();
}else{
userDomainList = null;
}
request.setAttribute("udl", userDomainList);
return mapping.findForward("netSafeOpSucc");
}
}
}