package cn.jcenterhome.web.action.admin;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.jcenterhome.util.Common;
import cn.jcenterhome.util.JavaCenterHome;
import cn.jcenterhome.web.action.BaseAction;
public class IpAction extends BaseAction {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
if (!Common.checkPerm(request, response, "manageip")) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
String onlineip = Common.getOnlineIP(request);
try {
if (submitCheck(request, "thevaluesubmit")) {
String ipAccess = Common.addSlashes(request.getParameter("ipaccess").replaceAll(
"(\\s*(\r\n|\n\r|\n|\r)\\s*)", "\r\n").trim());
if (!Common.ipAccess(onlineip, ipAccess)) {
return cpMessage(request, mapping, "cp_ip_is_not_allowed_to_visit_the_area", null, 1,
onlineip);
}
String ipBanned = Common.addSlashes(request.getParameter("ipbanned").replaceAll(
"(\\s*(\r\n|\n\r|\n|\r)\\s*)", "\r\n").trim());
if (Common.ipBanned(onlineip, ipBanned)) {
return cpMessage(request, mapping,
"cp_the_prohibition_of_the_visit_within_the_framework_of_ip", null, 1, onlineip);
}
Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig");
List<String> configs = new ArrayList<String>();
if (!ipAccess.equals(sConfig.get("ipaccess"))) {
configs.add("('ipaccess','" + ipAccess + "')");
}
if (!ipBanned.equals(sConfig.get("ipbanned"))) {
configs.add("('ipbanned','" + ipBanned + "')");
}
if (!configs.isEmpty()) {
dataBaseService.executeUpdate("REPLACE INTO " + JavaCenterHome.getTableName("config")
+ " (var,datavalue) VALUES " + Common.implode(configs, ","));
}
cacheService.config_cache();
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=ip");
}
} catch (Exception e1) {
return showMessage(request, response, e1.getMessage());
}
Map<String, Object> configs = new HashMap<String, Object>();
List<Map<String, Object>> values = dataBaseService.executeQuery("SELECT * FROM "
+ JavaCenterHome.getTableName("config") + " WHERE var IN ('ipbanned','ipaccess')");
for (Map<String, Object> value : values) {
configs.put((String) value.get("var"), Common.sHtmlSpecialChars(value.get("datavalue")));
}
request.setAttribute("configs", configs);
request.setAttribute("onlineip", onlineip);
return mapping.findForward("ip");
}
}