/**
  * 进入授权
  *
  * @param templateId
  * @param request
  * @param response
  * @return
  * @throws Exception
  */
 @RequestMapping("accessControl{templateId}")
 public ModelAndView accessControl(
     @PathVariable String templateId, HttpServletRequest request, HttpServletResponse response)
     throws Exception {
   if (templateId == null) {
     this.logger.warn("进入瞭望塔授权时传递的模板id为null");
     return new ModelAndView(this.NOT_FOUND_ACTION);
   }
   List<User> ulist = dwmisPopedomService.listTBUsers();
   List<Role> rlist = dwmisPopedomService.listTBRoles();
   ModelAndView mv = new ModelAndView();
   mv.setViewName("/dwmis/template/accessControl");
   mv.addObject("ulist", ulist);
   mv.addObject("rlist", rlist);
   mv.addObject("templateId", templateId);
   return mv;
 }
 /**
  * 模板权限
  *
  * @param request
  * @param response
  * @return
  */
 @RequestMapping("/managePopedom")
 public ModelAndView managePopedom(HttpServletRequest request, HttpServletResponse response) {
   String tid = request.getParameter("templateId");
   String[] roleIds = request.getParameterValues("roleIds");
   String[] userIds = request.getParameterValues("userIds");
   List<Role> rolelist = roleService.listAllRoles();
   List<User> userlist = userService.listAllUser();
   boolean isSuccess = true;
   if (roleIds != null && roleIds.toString() != "") {
     for (int i = 0; i < roleIds.length; i++) {
       if (rolelist != null && rolelist.size() > 0) {
         for (Role r : rolelist) {
           if (r.getRoleId().intValue() == Integer.parseInt(roleIds[i])) {
             rolelist.remove(r);
             break;
           }
         }
       }
       Role role = new Role();
       role.setRoleId(Integer.parseInt(roleIds[i]));
       role.setDwmisRights(tid);
       try {
         dwmisPopedomService.updateRoleTemplate(role);
       } catch (Exception e) {
         e.printStackTrace();
         this.logger.error(e.getMessage(), e);
         isSuccess = false;
         break;
       }
       role = roleService.getRoleById(role.getRoleId());
       this.insertLog(request, "更改角色" + role.getRoleName() + "瞭望台权限");
     }
     if (!isSuccess) {
       this.logger.warn("保存角色的瞭望台权限失败");
       ModelAndView mv = new ModelAndView();
       mv.addObject("msg", this.isFailed);
       mv.setViewName(SUCCESS_ACTION);
       return mv;
     }
   }
   if (userIds != null && userIds.toString() != "") {
     for (int i = 0; i < userIds.length; i++) {
       if (userlist != null && userlist.size() > 0) {
         for (User u : userlist) {
           if (u.getUserId().intValue() == Integer.parseInt(userIds[i])) {
             userlist.remove(u);
             break;
           }
         }
       }
       User user = new User();
       user.setUserId(Integer.parseInt(userIds[i]));
       user.setDwmisRights(tid);
       try {
         dwmisPopedomService.updateUserTemplate(user);
       } catch (Exception e) {
         e.printStackTrace();
         this.logger.error(e.getMessage(), e);
         isSuccess = false;
         break;
       }
       user = userService.getUserById(user.getUserId());
       this.insertLog(request, "更改用户" + user.getUsername() + "瞭望台权限");
     }
     if (!isSuccess) {
       this.logger.warn("保存用户的瞭望台权限失败");
       ModelAndView mv = new ModelAndView();
       mv.addObject("msg", this.isFailed);
       mv.setViewName(SUCCESS_ACTION);
       return mv;
     }
   }
   if (userlist != null && userlist.size() > 0) {
     for (User u : userlist) {
       this.logger.info("设置当前用户没有权限:" + u.getLoginname());
       this.logger.info("设置当前用户没有权限,原来的模板ID:" + tid);
       // 没有权限
       u.setDwmisRights(tid);
       try {
         dwmisPopedomService.updateUserNoTemplate(u);
       } catch (Exception e) {
         e.printStackTrace();
         this.logger.error(e.getMessage(), e);
         isSuccess = false;
         break;
       }
       this.insertLog(request, "更改用户" + u.getUsername() + "瞭望台权限");
     }
     if (!isSuccess) {
       this.logger.warn("保存角色的瞭望台权限失败");
       ModelAndView mv = new ModelAndView();
       mv.addObject("msg", this.isFailed);
       mv.setViewName(SUCCESS_ACTION);
       return mv;
     }
   }
   if (rolelist != null && rolelist.size() > 0) {
     for (Role r : rolelist) {
       r.setDwmisRights(tid);
       try {
         dwmisPopedomService.updateRoleNpTemplate(r);
       } catch (Exception e) {
         e.printStackTrace();
         this.logger.error(e.getMessage(), e);
         isSuccess = false;
         break;
       }
       this.insertLog(request, "更改角色" + r.getRoleName() + "瞭望台权限");
     }
     if (!isSuccess) {
       this.logger.warn("保存用户的瞭望台权限失败");
       ModelAndView mv = new ModelAndView();
       mv.addObject("msg", this.isFailed);
       mv.setViewName(SUCCESS_ACTION);
       return mv;
     }
   }
   ModelAndView mv = new ModelAndView();
   mv.addObject("msg", "success");
   mv.setViewName(SUCCESS_ACTION);
   return mv;
 }