diff --git a/src/main/java/com/nis/web/controller/basics/ServiceDictInfoController.java b/src/main/java/com/nis/web/controller/basics/ServiceDictInfoController.java index 70118cee7..c52d956c6 100644 --- a/src/main/java/com/nis/web/controller/basics/ServiceDictInfoController.java +++ b/src/main/java/com/nis/web/controller/basics/ServiceDictInfoController.java @@ -24,6 +24,7 @@ import com.google.common.collect.Maps; import com.nis.domain.Page; import com.nis.domain.SysUser; import com.nis.domain.basics.ServiceDictInfo; +import com.nis.domain.configuration.UserManage; import com.nis.util.ConfigDictUtils; import com.nis.util.Configurations; import com.nis.util.Constants; @@ -232,8 +233,36 @@ public class ServiceDictInfoController extends BaseController { @RequestMapping(value={"delete"}) public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes, String itType, String mulitId) { try { - serviceDictInfoService.deleteDict(mulitId); - addMessage(redirectAttributes,"success", "delete_success"); + String exIp=""; + String id=""; + Properties msgProp = getMsgProp(); + if(itType.equals("5")){ + String [] ids=mulitId.split(","); + for (int i = 0; i < ids.length; i++) { + ServiceDictInfo dict= serviceDictInfoService.getDictById(Integer.valueOf(ids[i])); + if(dict!=null){ + UserManage user =new UserManage(); + user.setServerIp(dict.getItemValue()+","); + List list=userManageService.findList(user); + if(list!=null && list.size()>0){ + exIp+=dict.getItemValue()+","; + }else{ + id+=ids[i]+","; + } + } + } + }else{ + id=mulitId; + } + if(!StringUtil.isEmpty(id)){ + serviceDictInfoService.deleteDict(id); + } + if(!StringUtil.isEmpty(exIp)){ + exIp=exIp.substring(0, exIp.length()-1); + addMessage(redirectAttributes,"error", "IP "+exIp+" "+msgProp.getProperty("user_check")); + }else{ + addMessage(redirectAttributes,"success", "delete_success"); + } } catch (Exception e) { e.printStackTrace(); addMessage(redirectAttributes,"error", "delete_failed"); @@ -593,4 +622,17 @@ public class ServiceDictInfoController extends BaseController { return dicName; } + + @ResponseBody + @RequestMapping(value = "ajaxIpRepeat") + public boolean ajaxIpRepeat(String oldIp, String ip,Integer type) { + if (ip !=null && ip.equals(oldIp)) { + return true; + } else if (ip !=null && serviceDictInfoService.getByItemValue(ip,type) == null) { + return true; + } + return false; + } + + } diff --git a/src/main/java/com/nis/web/controller/configuration/maintenance/UserManageController.java b/src/main/java/com/nis/web/controller/configuration/maintenance/UserManageController.java index fcefabe27..9de04c691 100644 --- a/src/main/java/com/nis/web/controller/configuration/maintenance/UserManageController.java +++ b/src/main/java/com/nis/web/controller/configuration/maintenance/UserManageController.java @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.eclipse.jetty.util.ajax.JSON; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -23,10 +24,8 @@ import com.google.common.collect.Maps; import com.nis.domain.Page; import com.nis.domain.basics.IpReuseIpCfg; import com.nis.domain.basics.ServiceDictInfo; -import com.nis.domain.configuration.BaseCfg; -import com.nis.domain.configuration.BaseStringCfg; -import com.nis.domain.configuration.CfgIndexInfo; -import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.IpReuseDnatPolicyCfg; +import com.nis.domain.configuration.IpReusePolicyCfg; import com.nis.domain.configuration.UserManage; import com.nis.exceptions.MaatConvertException; import com.nis.util.Constants; @@ -34,10 +33,14 @@ import com.nis.util.DateUtils; import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.controller.BaseController; +import com.nis.web.service.configuration.IpMultiplexService; @Controller @RequestMapping("${adminPath}/maintenance/userManage") public class UserManageController extends BaseController{ + + @Autowired + private IpMultiplexService ipMultiplexService; @RequestMapping(value = {"/list"}) @RequiresPermissions(value={"user:manage:view"}) @@ -69,13 +72,30 @@ public class UserManageController extends BaseController{ public String delete(Integer isValid ,String ids ,RedirectAttributes redirectAttributes,HttpServletRequest request){ - String deleteSuccessIp=""; String message=""; Properties msgProp = getMsgProp(); + String exUser=""; try{ for (String id : ids.split(",")) { UserManage user=userManageService.getUserById(id); - if(user != null && !StringUtil.isEmpty(user.getServerIp())) { + //判断用户是否存在snat、dnat复用策略中 + boolean flag=true; + if(user!=null && !StringUtil.isEmpty(user.getUserName())){ + //snat + List snatList=ipMultiplexService.findByUser(user.getUserName()); + if(snatList!=null && snatList.size()>0){ + exUser+=user.getUserName()+","; + flag=false; + }else{ + //dnat + List dnatList=ipMultiplexService.findDnatUser(user.getUserName()); + if(dnatList!=null && dnatList.size()>0){ + exUser+=user.getUserName()+","; + flag=false; + } + } + } + if(user != null && !StringUtil.isEmpty(user.getServerIp()) && flag) { boolean lastIp=false; int deleteIpLenth=1; String serverIp=user.getServerIp().substring(0, user.getServerIp().length()-1); @@ -99,9 +119,19 @@ public class UserManageController extends BaseController{ } } } - addMessage(redirectAttributes,"success","delete_success"); + if(!StringUtil.isEmpty(exUser)){ + exUser=exUser.substring(0, exUser.length()-1); + addMessage(redirectAttributes,"error", msgProp.getProperty("user")+" "+exUser+" "+msgProp.getProperty("user_check")); + }else{ + addMessage(redirectAttributes,"success","delete_success"); + } + }catch(Exception e){ logger.error("Delete failed",e); + if(!StringUtil.isEmpty(exUser)){ + exUser=exUser.substring(0, exUser.length()-1); + message+="
"+msgProp.getProperty("user")+" "+exUser+" "+msgProp.getProperty("user_check"); + } if(e instanceof MaatConvertException) { addMessage(redirectAttributes,"error",message); }else { diff --git a/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.java b/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.java index 5bd15336f..98ae74723 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.java @@ -48,4 +48,8 @@ public interface IpMultiplexDao extends CrudDao{ List findByPage(@Param("ids")String ids); List findPageByDnat(@Param("ids")String ids); + + + List findByUser(@Param("userName")String userName); + List findDnatUser(@Param("userName")String userName); } diff --git a/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.xml b/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.xml index 527712ca7..21a63c543 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexDao.xml @@ -801,4 +801,22 @@ + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/IpMultiplexService.java b/src/main/java/com/nis/web/service/configuration/IpMultiplexService.java index 4e7f2f8d3..548588aff 100644 --- a/src/main/java/com/nis/web/service/configuration/IpMultiplexService.java +++ b/src/main/java/com/nis/web/service/configuration/IpMultiplexService.java @@ -327,4 +327,14 @@ public class IpMultiplexService extends BaseService{ public IpReuseDnatPolicyCfg getDnatCfg(Long cfgId,Integer compileId) { return ipMultiplexDao.getDnatCfg(cfgId,compileId); } + + public List findByUser(String userName) { + List list=ipMultiplexDao.findByUser(userName); + return list; + } + + public List findDnatUser(String userName) { + List list=ipMultiplexDao.findDnatUser(userName); + return list; + } } diff --git a/src/main/java/com/nis/web/service/configuration/UserManageService.java b/src/main/java/com/nis/web/service/configuration/UserManageService.java index a2c3c96d0..8df13477a 100644 --- a/src/main/java/com/nis/web/service/configuration/UserManageService.java +++ b/src/main/java/com/nis/web/service/configuration/UserManageService.java @@ -48,6 +48,12 @@ public class UserManageService extends BaseService{ return page; } + public List findList(UserManage entity) { + List list=userManageDao.findList(entity); + return list; + } + + public List findByPage(String ids ) { List list=userManageDao.findByList(ids); return list; diff --git a/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp b/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp index 88d39f6af..9b06a7342 100644 --- a/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp +++ b/src/main/webapp/WEB-INF/views/basics/serviceDictForm.jsp @@ -104,6 +104,23 @@ label.errorShow { return flagLeafChange; },""); + + //校验ip是否重复 + jQuery.validator.addMethod("ipRepeat",function(value,element){ + var flagLeafChange=false; + $.ajax({ + type:'post', + async:false, + url:'${ctx}/basics/serviceDictInfo/ajaxIpRepeat', + data:{oldIp:"${serviceDictInfo.itemValue}",ip:$("#itemValue").val(),type:5}, + success:function(data){ + flagLeafChange=data; + } + }); + return flagLeafChange; + },""); + + jQuery.validator.addMethod("ipchecks",function(value,element){ var tel=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/; return this.optional(element) || (tel.test(value)); @@ -252,7 +269,7 @@ label.errorShow {
- +