From 2d990234a8bb946c4f4e9615807dca9a1024a292 Mon Sep 17 00:00:00 2001 From: myname Date: Tue, 23 Jan 2024 18:24:33 +0900 Subject: [PATCH] =?UTF-8?q?2024-01-23=2018:24=20=EC=B2=B4=ED=97=98?= =?UTF-8?q?=EA=B5=90=EC=8B=A4=20=EC=9A=B4=EC=98=81=EC=8B=A0=EC=B2=AD?= =?UTF-8?q?=EC=84=9C=20=EC=9E=91=EC=84=B1=EC=8B=9C=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uss/umt/web/EgovUserManageController.java | 4343 +++++++++-------- .../trgtMng/web/CndtnTrgtMngController.java | 6 + .../jsp/cmm/uss/umt/EgovUserInsert.jsp | 1081 ++-- .../jsp/cmm/uss/umt/EgovUserSelectUpdt.jsp | 30 +- .../exprnClsrmInfo/exprnClsrmAplctReg.jsp | 4 +- 5 files changed, 2772 insertions(+), 2692 deletions(-) diff --git a/src/main/java/kcc/let/uss/umt/web/EgovUserManageController.java b/src/main/java/kcc/let/uss/umt/web/EgovUserManageController.java index 7db197d5..b36b259b 100644 --- a/src/main/java/kcc/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/kcc/let/uss/umt/web/EgovUserManageController.java @@ -1,2157 +1,2188 @@ -package kcc.let.uss.umt.web; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.CellStyle; -import org.apache.poi.ss.usermodel.Font; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.xssf.streaming.SXSSFWorkbook; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.ui.ModelMap; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import org.springmodules.validation.commons.DefaultBeanValidator; - -import com.google.gson.Gson; - -import egovframework.rte.fdl.property.EgovPropertyService; -import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; -import egovframework.rte.psl.dataaccess.util.EgovMap; -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.ComDefaultCodeVO; -import kcc.com.cmm.EgovMessageSource; -import kcc.com.cmm.LoginVO; -import kcc.com.cmm.service.EgovCmmUseService; -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.com.cmm.util.EgovDoubleSubmitHelper; -import kcc.com.cmm.util.RedirectUrlMaker; -import kcc.com.utl.fcc.service.EgovStringUtil; -import kcc.let.org.service.LocVO; -import kcc.let.org.service.OrgChartManageService; -import kcc.let.sec.ram.service.AuthorManageVO; -import kcc.let.sec.ram.service.EgovAuthorManageService; -import kcc.let.sec.rgm.service.AuthorGroup; -import kcc.let.sec.rgm.service.EgovAuthorGroupService; -import kcc.let.sym.site.service.EgovSiteManagerService; -import kcc.let.sym.site.service.SiteManagerVO; -import kcc.let.uat.uia.service.EgovLoginService; -import kcc.let.uss.umt.service.EgovMberManageService; -import kcc.let.uss.umt.service.EgovUserManageService; -import kcc.let.uss.umt.service.MberManageConfigVO; -import kcc.let.uss.umt.service.MberManageVO; -import kcc.let.uss.umt.service.UserDefaultVO; -import kcc.let.uss.umt.service.UserManageVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.let.utl.sim.service.EgovFileScrty; - -/** - * 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다 - * @author 공통서비스 개발팀 조재영 - * @since 2009.04.10 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2009.04.10  조재영          최초 생성
- *   2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성
- *
- * 
- */ -@Controller -public class EgovUserManageController { - -// static String RSA_WEB_KEY = "_RSA_WEB_Key_1"; // 개인키 session key -// static String RSA_INSTANCE = "RSA"; // rsa transformation - - /** userManageService */ - @Resource(name = "userManageService") - private EgovUserManageService userManageService; - - /** cmmUseService */ - @Resource(name = "EgovCmmUseService") - private EgovCmmUseService cmmUseService; - - /** EgovMessageSource */ - @Resource(name = "egovMessageSource") - EgovMessageSource egovMessageSource; - - /** EgovPropertyService */ - @Resource(name = "propertiesService") - protected EgovPropertyService propertiesService; - - /** mberManageService */ - @Resource(name = "mberManageService") - private EgovMberManageService mberManageService; - - /** DefaultBeanValidator beanValidator */ - @Autowired - private DefaultBeanValidator beanValidator; - - @Resource(name = "EgovFileMngUtil") - private EgovFileMngUtil fileUtil; - - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileMngService; - - @Resource(name = "egovAuthorManageService") - private EgovAuthorManageService egovAuthorManageService; - - /*@Resource(name = "EgovOrgChartManageService") - private EgovOrgChartManageService orgChartManageService;*/ - - @Resource(name = "orgChartManageService") - private OrgChartManageService orgChartManageService; - - - @Resource(name = "egovAuthorGroupService") - private EgovAuthorGroupService egovAuthorGroupService; - - @Resource(name = "egovSiteManagerService") - private EgovSiteManagerService egovSiteManagerService; - - @Resource(name = "loginService") - private EgovLoginService loginService; - - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - - private String topLocNo = "1000000" ; //전역 최상위 매뉴번호 - - - //배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"} - private String[][] userExcelValue ={ - {"0" ,"번호" , "1" , "" }, - {"1", "사이트명" , "ITN" , "[코드]"}, - {"2", "아이디" , "testId", ""}, - {"3", "이름" , "홍길동", ""}, - {"4", "권한" , "일반관리자", "[코드]"}, - {"5", "전화번호(부서)" , "02-123-4567", ""}, - {"6", "이메일" , "test@kcc.co.kr", ""}, - {"7", "등록일" ,"2019-10-31", ""} - } ; - /** - * - * (관리자)관리자목록을 조회한다. (pageing) - * @param userSearchVO 검색조건정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovUserManage - * @throws Exception - */ - @RequestMapping(value = {"/uss/umt/user/EgovUserManage.do", "/uss/umt/user/EgovUserManageMenuAjax.do"}) - public String selectUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, - ModelMap model, - HttpServletRequest request, - HttpSession session) throws Exception { - { - //일반관리자가 좌측의 매뉴의 관리자 관리 클릭시 리스트가 아닌 자신의 정보수정페이지로 리로딩. - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음. - loginVO.setId(loginVO.getId()); - if(!"ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){//최고관리자 아닐경우 - return "redirect:/EgovTopPageLink.do?link=/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginVO.getUniqId()+"&baseMenuNo=3500000" ; - } - } - - if(userSearchVO.getPageUnit() != 10) { - userSearchVO.setPageUnit(userSearchVO.getPageUnit()); - } - - try{ - /** pageing */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); - paginationInfo.setPageSize(userSearchVO.getPageSize()); - - userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); - userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - //userSearchVO.setAdminYn("Y"); - if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - userSearchVO.setSearchSortCnd("uniqId"); - userSearchVO.setSearchSortOrd("desc"); - } - List resultList = userManageService.selectUserList(userSearchVO) ; - model.addAttribute("resultList", resultList); - //paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); - int i_resultList = resultList.size(); - - /* - if (i_resultList>0) { - String g_resultList = ((EgovMap)resultList.get(0)).get("totCnt").toString(); - } - */ - - //paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((int)((EgovMap)resultList.get(0)).get("totCnt")) : 0); - paginationInfo.setTotalRecordCount(i_resultList); - model.addAttribute("paginationInfo", paginationInfo); - - //사용자상태코드를 코드정보로부터 조회 - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - vo.setCodeId("COM038"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - - if("/uss/umt/user/EgovUserManageMenuAjax.do".equals(request.getServletPath())) { - return "cmm/uss/umt/EgovUserManageMenuAjax"; - } - }catch(Exception ex) { - ex.printStackTrace(); - } - - - return "cmm/uss/umt/EgovUserManage"; - } - - /** - * - * (사용자) 사용자목록을 조회한다. (pageing) - * @param userSearchVO 검색조건정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovUserManage - * @throws Exception - */ - - @RequestMapping(value = "/uss/umt/user/EgovGnrlUserManage.do") - public String selectGnrlUserManage(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, - ModelMap model, - HttpSession session) throws Exception { - - if(userSearchVO.getPageUnit() != 10) { - userSearchVO.setPageUnit(userSearchVO.getPageUnit()); - } - - /** pageing */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); - paginationInfo.setPageSize(userSearchVO.getPageSize()); - - userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); - userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - - userSearchVO.setAdminYn("N"); - if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - userSearchVO.setSearchSortCnd("uniqId"); - userSearchVO.setSearchSortOrd("desc"); - } - //이름 검색 암호화 - userSearchVO.setSnsSiteName(egovCryptoUtil.encrypt(userSearchVO.getSearchKeyword())); - - List resultList = mberManageService.selectMberList(userSearchVO); - - //이름 복호화 - - model.addAttribute("resultList", resultList); -// paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); - paginationInfo.setTotalRecordCount(10); - model.addAttribute("paginationInfo", paginationInfo); - - //사용자상태코드를 코드정보로부터 조회 - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - vo.setCodeId("COM038"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - return "cmm/uss/umt/EgovGnrlUserManage"; - } - - /** - * (관리자) 사용자등록화면으로 이동한다. - * @param userSearchVO 검색조건정보 - * @param userManageVO 사용자초기화정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovUserInsert - * @throws Exception - */ - @RequestMapping("/uss/umt/user/EgovUserInsertView.do") - public String insertUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("userManageVO") UserManageVO userManageVO,Model model) - throws Exception { - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - - //조직도 정보조회 - /*PartInfVO partInfVO = new PartInfVO(); - partInfVO.setDepth(1); - List orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO); - model.addAttribute("orgChartDepth1", orgChartDepth1);*/ - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorSet("01"); - authorManageVO.setSearchSortCnd("sort_num"); - authorManageVO.setSearchSortOrd("desc"); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - - - //selectbox 미리 만들기 - LocVO locVO = new LocVO(); - locVO.setTopLocNo(topLocNo); //최상위 매뉴번호 - List orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO); - String userOneDepth = ""; - String userTwoDepth = ""; - - if(null != userManageVO.getPartIdx() && !"".equals(userManageVO.getPartIdx())) { - for(LocVO tempLocVO : orgHiddenList) { - if(userManageVO.getPartIdx().equals(tempLocVO.getId())){ - if(1==tempLocVO.getDepths()) { //1뎁스면 조회 안함 - userOneDepth = tempLocVO.getId(); - }else { //2뎁스면 - userTwoDepth = tempLocVO.getId() ; - userOneDepth = tempLocVO.getParent() ; - } - } - } - } - model.addAttribute("userOneDepth", userOneDepth); - model.addAttribute("userTwoDepth", userTwoDepth); - model.addAttribute("orgHiddenList", orgHiddenList); - - return "cmm/uss/umt/EgovUserInsert"; - } - - /** - * (사용자) 사용자등록화면으로 이동한다. - * @param userSearchVO 검색조건정보 - * @param userManageVO 사용자초기화정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovUserInsert - * @throws Exception - */ - @RequestMapping(value= {"/uss/umt/user/EgovGnrlUserInsertView.do", "/uss/umt/user/EgovGnrlUserInsertViewAjax.do"} ) - public String insertGnrlUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, - @ModelAttribute("mberManageVO") MberManageVO mberManageVO, - HttpSession session, - HttpServletRequest request, - Model model) - throws Exception { - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - - //조직도 정보조회 - /*PartInfVO partInfVO = new PartInfVO(); - partInfVO.setDepth(1); - List orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO); - model.addAttribute("orgChartDepth1", orgChartDepth1);*/ - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - - //config 정보 가져오기 - MberManageConfigVO mberConfigVO = new MberManageConfigVO(); - mberConfigVO.setUseYn("Y"); //사용하는것만 - mberConfigVO.setIsSns("N");; - List mberManageCnfList = mberManageService.selectMberCnf(mberConfigVO); - model.addAttribute("mberManageCnfList", mberManageCnfList); - if("/uss/umt/user/EgovGnrlUserInsertViewAjax.do".equals(request.getServletPath())) { - return "cmm/uss/umt/EgovGnrlUserInsertAjax"; - } - return "cmm/uss/umt/EgovGnrlUserInsert"; - } - - /** - * 사용자등록처리후 목록화면으로 이동한다. - * @param userManageVO 사용자등록정보 - * @param bindingResult 입력값검증용 bindingResult - * @param model 화면모델 - * @return forward:/uss/umt/user/EgovUserManage.do - * @throws Exception - */ - @RequestMapping("/uss/umt/user/EgovUserInsert.do") - public String insertUser(@ModelAttribute("userManageVO") UserManageVO userManageVO, BindingResult bindingResult, Model model , RedirectAttributes redirectAttributes) throws Exception { - if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) { - return "redirect:/uss/umt/user/EgovUserManage.do"; - } - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - if(!validationPasswd(userManageVO.getPassword())){ - redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다."); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - beanValidator.validate(userManageVO, bindingResult); - if (bindingResult.hasErrors()){ - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - //return "forward:/uss/umt/user/EgovUserInsertView.do"; - return "cmm/uss/umt/EgovUserInsert"; - }else{ - try{ - userManageService.insertUser(userManageVO); - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert")); - }catch(Exception e){ - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert")); - } - } - //관리자등록일 경우 - System.out.println("userManageVO.getGnrlUser() :: "+ userManageVO.getGnrlUser()); - if(userManageVO.getGnrlUser().equals("N")) { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - //사용자 등록일 경우 - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - //return "redirect:/uss/umt/user/EgovUserManage.do"; - } - - /** - * 사용자정보 수정을 위해 사용자정보를 상세조회한다. - * 최고관리자의 경우에는 비밀번호를 체크하지 않는다. - * @param uniqId 상세조회대상 사용자아이디 - * @param userSearchVO 검색조건 - * @return cmm/uss/umt/EgovUserSelectUpdt - * @param model 화면모델 - * @throws Exception - */ - @RequestMapping("/uss/umt/user/EgovUserSelectUpdtView.do") - public String updateUserView(@RequestParam("selectedId") String uniqId, - @ModelAttribute("searchVO") UserDefaultVO userSearchVO, - HttpServletRequest request, - @RequestParam Map commandMap, - Model model) throws Exception { - - LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - - if(!"ROLE_ADMIN".equals(loginVO.getAuthority()) && !uniqId.equals(loginVO.getUniqId())) { - /*return "/cmm/main/mainPage.do";*/ - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/cmm/main/mainPage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - try { - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - - UserManageVO userManageVO = new UserManageVO(); - userManageVO = userManageService.selectUser(uniqId); - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("userManageVO", userManageVO); - - if(userManageVO == null){ - /*redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select")); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl();*/ - } - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorSet("01"); - authorManageVO.setSearchSortCnd("sort_num"); - authorManageVO.setSearchSortOrd("desc"); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - //initRsa(request); - - if("ROLE_ADMIN".equals(loginVO.getAuthority())) { - model.addAttribute("isAdmin", "Y"); - } - - if("ROLE_USER_MEMBER".equals(loginVO.getAuthority())) { - model.addAttribute("isMember", "Y"); - } - - //selectbox 미리 만들기 - LocVO locVO = new LocVO(); - locVO.setTopLocNo(topLocNo); //최상위 매뉴번호 - List orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO); - String userOneDepth = ""; - String userTwoDepth = ""; - - if(null != userManageVO.getPartIdx() - && !"".equals(userManageVO.getPartIdx()) - ) { - for(LocVO tempLocVO : orgHiddenList) { - if(userManageVO.getPartIdx().equals(tempLocVO.getId())){ - if(1==tempLocVO.getDepths()) { //1뎁스면 조회 안함 - userOneDepth = tempLocVO.getId(); - }else { //2뎁스면 - userTwoDepth = tempLocVO.getId() ; - userOneDepth = tempLocVO.getParent() ; - } - } - } - } - model.addAttribute("userOneDepth", userOneDepth); - model.addAttribute("userTwoDepth", userTwoDepth); - model.addAttribute("orgHiddenList", orgHiddenList); - }catch(Exception ex) { - ex.printStackTrace(); - } - - return "cmm/uss/umt/EgovUserSelectUpdt"; - } - - //사용자 수정화면 - @RequestMapping("/uss/umt/user/EgovGnrlUserSelectUpdtView.do") - public String updateGnrlUserView(@RequestParam("selectedId") String uniqId, - HttpServletRequest request, - @ModelAttribute("searchVO") UserDefaultVO userSearchVO, - @ModelAttribute("mberManageVO") MberManageVO mberManageVO, - RedirectAttributes redirectAttributes , - Model model, - HttpSession session) throws Exception { - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCodeList", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - - mberManageVO = mberManageService.selectMber(uniqId) ; - - model.addAttribute("userSearchVO", userSearchVO); - - mberManageVO.setMberNm(egovCryptoUtil.decrypt(mberManageVO.getMberNm())); - - model.addAttribute("mberManageVO", mberManageVO); - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); -// authorManageVO.setAuthorSet("02"); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - - if(mberManageVO == null){ - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select")); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - - //config 정보 가져오기 - MberManageConfigVO mberConfigVO = new MberManageConfigVO(); - mberConfigVO.setUseYn("Y"); //사용하는것만 - mberConfigVO.setIsSns("N"); //SNS는 제외 - List mberManageCnfList = mberManageService.selectMberCnf(mberConfigVO); - for(MberManageConfigVO mberVO : mberManageCnfList) { //하드코딩.... - /*if("offmTelno".equals(mberVO.getConfigId())){ //전화번호 - mberVO.setParmValue(mberManageVO.getMoblphonNo()); - mberVO.setValidateName("numberOnly2"); - }*/ - if("moblphonNo".equals(mberVO.getConfigId())){ //핸드폰 - mberVO.setParmValue(mberManageVO.getMoblphonNo()); - mberVO.setValidateName("numberOnly2"); - } - if("adres".equals(mberVO.getConfigId())){ //주소 - mberVO.setParmValue(mberManageVO.getAdres()); - } - - if("detailAdres".equals(mberVO.getConfigId())){ //상세주소 - mberVO.setParmValue(mberManageVO.getDetailAdres()); - } - - if("mberFxnum".equals(mberVO.getConfigId())){ //팩스번호 - mberVO.setParmValue(mberManageVO.getMberFxnum()); - mberVO.setValidateName("numberOnly2"); - } - if("mberEmailAdres".equals(mberVO.getConfigId())){ //이메일 - mberVO.setParmValue(mberManageVO.getMberEmailAdres()); - } - if("zip".equals(mberVO.getConfigId())){ //우편번호 - mberVO.setParmValue(mberManageVO.getZip()); - mberVO.setValidateName("numberOnly"); - } - if("emailYn".equals(mberVO.getConfigId())){ //이메일수신여부 - mberVO.setParmValue(mberManageVO.getEmailYN()); - } - if("smsYN".equals(mberVO.getConfigId())){ //문자수신여부 - mberVO.setParmValue(mberManageVO.getSmsYN()); - } - } - - model.addAttribute("mberManageCnfList", mberManageCnfList); - -// initRsa(request); - - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음. - loginVO.setId(loginVO.getId()); - if("ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){ - model.addAttribute("roleAdmin", "Y"); - } - return "cmm/uss/umt/EgovGnrlUserSelectUpdt"; - } - - /** - * 관리자 정보 수정후 목록조회 화면으로 이동한다. - * @param userManageVO 사용자수정정보 - * @param bindingResult 입력값검증용 bindingResult - * @param model 화면모델 - * @return forward:/uss/umt/user/EgovUserManage.do - * @throws Exception - */ - @RequestMapping(value= {"/uss/umt/user/EgovUserSelectUpdt.do", "/uss/umt/user/EgovUserSelectUpdtAjax.do"}) - public String updateUser(@ModelAttribute("userManageVO") UserManageVO userManageVO, - HttpSession session, HttpServletRequest request , - BindingResult bindingResult, - RedirectAttributes redirectAttributes, - Model model) throws Exception { - - /*if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")){ - return "redirect:/uss/umt/user/EgovUserManage.do"; - }*/ - -// PrivateKey privateKey = (PrivateKey) session.getAttribute(EgovUserManageController.RSA_WEB_KEY); -// if(privateKey == null) { -// initRsa(request); -// redirectAttributes.addFlashAttribute("message", "저장되지 않았습니다."); -// if(userManageVO.getGnrlUser().equals("N")){ -// RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); -// return redirectUrlMaker.getRedirectUrl(); -// } -// RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); -// return redirectUrlMaker.getRedirectUrl(); -// } - /*if(userManageVO.getGnrlUser().equals("N")){ - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - }*/ - - - //최고 관리자의 경우 관리자정보 변경시 비번 체크안함. - LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - beanValidator.validate(userManageVO, bindingResult); - /*if (bindingResult.hasErrors()) { - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - return "cmm/uss/umt/EgovUserSelectUpdt"; - } else {*/ - //업무사용자 수정시 히스토리 정보를 등록한다. - AuthorGroup authorGroup = new AuthorGroup(); - if(null!=userManageVO.getSiteId()){ - authorGroup.setUniqId(userManageVO.getUniqId()); - authorGroup.setAuthorCode(userManageVO.getAuthorCode()); - }else{ - authorGroup.setUniqId(userManageVO.getUniqId()); - authorGroup.setAuthorCode(userManageVO.getAuthorCode()); - } - - userManageService.insertUserHistory(userManageVO); - userManageService.updateUser(userManageVO); - //권한업데이트 - egovAuthorGroupService.updateAuthorGroup(authorGroup); - - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update")); - if(userManageVO.getGnrlUser().equals("N")){ - if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) { - LoginVO tempUser = new LoginVO(); - tempUser.setId(userManageVO.getEmplyrId()); - //RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId()); - return redirectUrlMaker.getRedirectUrl(); - }else { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - } - //사용자 수정 시 - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - /** - * 사용자정보삭제후 목록조회 화면으로 이동한다. - * @param checkedIdForDel 삭제대상아이디 정보 - * @param userSearchVO 검색조건 - * @param model 화면모델 - * @return forward:/uss/umt/user/EgovUserManage.do - * @throws Exception - */ - @RequestMapping("/uss/umt/user/EgovUserDelete.do") - public String deleteUser(@RequestParam("checkedIdForDel") String checkedIdForDel, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, RedirectAttributes redirectAttributes, Model model) throws Exception { - if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) { - return "redirect:/uss/umt/user/EgovUserManage.do"; - } - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - userManageService.deleteUser(checkedIdForDel); - - - //Exception 없이 진행시 등록성공메시지 - //model.addAttribute("message", "success.common.delete"); - //return "forward:/uss/umt/user/EgovUserManage.do"; - - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete")); - if(userSearchVO.getGnrlUser().equals("N")) { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - /** - * 입력한 사용자아이디의 중복확인화면 이동 - * @param model 화면모델 - * @return cmm/uss/umt/EgovIdDplctCnfirm - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/cmm/EgovIdDplctCnfirmView.do") - public String checkIdDplct(ModelMap model) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - model.addAttribute("checkId", ""); - model.addAttribute("usedCnt", "-1"); - return "cmm/uss/umt/EgovIdDplctCnfirm"; - } - - /** - * 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인 - * @param commandMap 파라메터전달용 commandMap - * @param model 화면모델 - * @return cmm/uss/umt/EgovIdDplctCnfirm - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/cmm/EgovIdDplctCnfirm.do") - public String checkIdDplct(@RequestParam Map commandMap, ModelMap model) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - String checkId = (String) commandMap.get("checkId"); - checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8"); - - if (checkId == null || checkId.equals("")) - return "forward:/uss/umt/EgovIdDplctCnfirmView.do"; - - int usedCnt = userManageService.checkIdDplct(checkId); - model.addAttribute("usedCnt", usedCnt); - model.addAttribute("checkId", checkId); - - return "cmm/uss/umt/EgovIdDplctCnfirm"; - } - - /** - * 업무사용자 암호 수정처리 후 화면 이동 - * @param model 화면모델 - * @param commandMap 파라메터전달용 commandMap - * @param userSearchVO 검색조 건 - * @param userManageVO 사용자수정정보(비밀번호) - * @return cmm/uss/umt/EgovUserPasswordUpdt - * @throws Exception - */ - //기존 비밀번호 체크 있는 버전 - /*@RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdt.do") - public String updatePassword(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, - @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - List authorities = EgovUserDetailsHelper.getAuthorities(); - boolean authFlag = false; - - for (String authority : authorities) { - if (authority.equals("ROLE_ADMIN")) authFlag = true; - } - - String newPassword = (String) commandMap.get("newPassword"); - - if(!validationPasswd(newPassword)){ - model.addAttribute("userManageVO", userManageVO); - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("adminYn", authFlag); - model.addAttribute("message", "비밀번호은(는) 문자+숫자+특수문자 포함, 8~20자 내에서 입력해야 합니다."); - return "cmm/uss/umt/EgovUserPasswordUpdt"; - } - - String oldPassword = (String) commandMap.get("oldPassword"); -// String newPassword = (String) commandMap.get("newPassword"); - String newPassword2 = (String) commandMap.get("newPassword2"); - String uniqId = (String) commandMap.get("uniqId"); - - boolean isCorrectPassword = false; - UserManageVO resultVO = new UserManageVO(); - userManageVO.setPassword(newPassword); - userManageVO.setOldPassword(oldPassword); - userManageVO.setUniqId(uniqId); - - String resultMsg = ""; - resultVO = userManageService.selectPassword(userManageVO); - //패스워드 암호화 - String encryptPass = EgovFileScrty.encryptPassword(oldPassword, userManageVO.getEmplyrId()); - - for (String authority : authorities) { //일반사용자까지 - if (authority.equals("ROLE_ADMIN") || authority.equals("ROLE_USER_MEMBER")) authFlag = true; - } - - authFlag = false; //GS인증으로 이전비밀번호 체크 - if (encryptPass.equals(resultVO.getPassword()) || authFlag) { - if (newPassword.equals(newPassword2)) { - isCorrectPassword = true; - } else { - isCorrectPassword = false; - resultMsg = "fail.user.passwordUpdate2"; - } - } else { - isCorrectPassword = false; - resultMsg = "fail.user.passwordUpdate1"; - } - - if (isCorrectPassword) { - userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId())); - userManageService.updatePassword(userManageVO); - model.addAttribute("userManageVO", userManageVO); - resultMsg = "success.common.update"; - } else { - model.addAttribute("userManageVO", userManageVO); - } - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("message", resultMsg); - - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage(resultMsg)); - if(userSearchVO.getGnrlUser().equals("N")) { //관리자 비밀번호 변경시 - - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) { - LoginVO tempUser = new LoginVO(); - tempUser.setId(userManageVO.getEmplyrId()); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId()); - return redirectUrlMaker.getRedirectUrl(); - }else { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - //return "cmm/uss/umt/EgovUserPasswordUpdt"; - } //사용자 비밀번호 변경시 - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - - }*/ - @RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdt.do") - public String updatePassword(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, - @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - List authorities = EgovUserDetailsHelper.getAuthorities(); - boolean authFlag = false; - - for (String authority : authorities) { - if (authority.equals("ROLE_ADMIN")) authFlag = true; - } - - String newPassword = (String) commandMap.get("newPassword"); - - if(!validationPasswd(newPassword)){ - model.addAttribute("userManageVO", userManageVO); - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("adminYn", authFlag); - model.addAttribute("message", "비밀번호은(는) 문자+숫자+특수문자 포함, 8~20자 내에서 입력해야 합니다."); - return "cmm/uss/umt/EgovUserPasswordUpdt"; - } - -// String oldPassword = (String) commandMap.get("oldPassword"); -// String newPassword = (String) commandMap.get("newPassword"); - String newPassword2 = (String) commandMap.get("newPassword2"); - String uniqId = (String) commandMap.get("uniqId"); - - boolean isCorrectPassword = false; - UserManageVO resultVO = new UserManageVO(); - userManageVO.setPassword(newPassword); -// userManageVO.setOldPassword(oldPassword); - userManageVO.setUniqId(uniqId); - - String resultMsg = ""; - resultVO = userManageService.selectPassword(userManageVO); - //패스워드 암호화 -// String encryptPass = EgovFileScrty.encryptPassword(oldPassword, userManageVO.getEmplyrId()); - - for (String authority : authorities) { //일반사용자까지 - if (authority.equals("ROLE_ADMIN") || authority.equals("ROLE_USER_MEMBER")) authFlag = true; - } - -// authFlag = false; //GS인증으로 이전비밀번호 체크 -// 이전 비밀번호 체크 하지 않고 비밀번호 변경되게 해달라는 요청으로 주석처리 220209 이준호 -// if (encryptPass.equals(resultVO.getPassword()) || authFlag) { - if (newPassword.equals(newPassword2)) { - isCorrectPassword = true; - } else { - isCorrectPassword = false; - resultMsg = "fail.user.passwordUpdate2"; - } -// } - /*else { - isCorrectPassword = false; - resultMsg = "fail.user.passwordUpdate1"; - }*/ - - if (isCorrectPassword) { - userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId())); - userManageService.updatePassword(userManageVO); - model.addAttribute("userManageVO", userManageVO); - resultMsg = "success.common.update"; - } else { - model.addAttribute("userManageVO", userManageVO); - } - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("message", egovMessageSource.getMessage(resultMsg)); - - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage(resultMsg)); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(""); - if(userSearchVO.getGnrlUser().equals("N")) { //관리자 비밀번호 변경시 - - /*RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl();*/ - /*LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) { - LoginVO tempUser = new LoginVO(); - tempUser.setId(userManageVO.getEmplyrId()); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId()); - return redirectUrlMaker.getRedirectUrl(); - }else { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - }*/ - if(isCorrectPassword && authFlag == false) { - redirectUrlMaker = new RedirectUrlMaker("/uat/uia/actionLogout.do"); - - }else { - redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - - } - - } //사용자 비밀번호 변경시 -// RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); -// return redirectUrlMaker.getRedirectUrl(); - return redirectUrlMaker.getRedirectUrl(); - - } - - /** - * 업무사용자 암호 수정 화면 이동 - * @param model 화면모델 - * @param commandMap 파라메터전달용 commandMap - * @param userSearchVO 검색조건 - * @param userManageVO 사용자수정정보(비밀번호) - * @return cmm/uss/umt/EgovUserPasswordUpdt - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdtView.do") - public String updatePasswordView(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, - @ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { - - LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - - if(!"ROLE_ADMIN".equals(loginVO.getAuthority()) && !userManageVO.getUniqId().equals(loginVO.getUniqId())) { - /*return "/cmm/main/mainPage.do";*/ - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/cmm/main/mainPage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - if("".equals(userManageVO.getUniqId())){ - String sLocationUrl = "uss/umt/user/EgovUserManage.do"; - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(sLocationUrl); - return redirectUrlMaker.getRedirectUrl(); - } - - String userTyForPassword = (String) commandMap.get("userTyForPassword"); - userManageVO.setUserTy(userTyForPassword); - - List authorities = EgovUserDetailsHelper.getAuthorities(); - boolean authFlag = false; - - for (String authority : authorities) { - if (authority.equals("ROLE_ADMIN")) authFlag = true; - } - - model.addAttribute("userManageVO", userManageVO); - model.addAttribute("userSearchVO", userSearchVO); - model.addAttribute("adminYn", authFlag); - return "cmm/uss/umt/EgovUserPasswordUpdt"; - } - - /** - * 회원가입설정관리 - * @return uss/umt/user/EgovMberConfigInsert - * @throws Exception - */ - @RequestMapping(value = {"/uss/umt/mber/EgovMberConfigInsert.do" , "/uss/umt/mber/EgovMberConfigInsertAjax.do"}) - public String selectMberConfigInsert( - @ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, - @ModelAttribute("mberManageVO") MberManageVO mberManageVO, - @RequestParam Map commandMap, - SiteManagerVO siteManagerVO, - HttpServletRequest request, - Model model , - HttpSession session) throws Exception { - MberManageConfigVO mberConfigVO = new MberManageConfigVO();//config 정보 가져오기 - LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - if("super".equals(loginVO.getSiteId()) && null==mberManageVO.getSiteId()){ //수퍼 관리자이고 사이트 아이디 없을경우 kcc 으로 기본 세팅 - mberConfigVO.setSiteId("kcc"); - siteManagerVO.setSiteId("kcc"); - }else{ - if("".equals(mberManageVO.getSiteId()) || null==mberManageVO.getSiteId()){ - mberConfigVO.setSiteId(loginVO.getSiteId()); - siteManagerVO.setSiteId(loginVO.getSiteId()); - }else { - mberConfigVO.setSiteId(mberManageVO.getSiteId()); - siteManagerVO.setSiteId(mberManageVO.getSiteId()); - } - } - model.addAttribute("mberConfigVO", mberConfigVO); - List mberManageCnfVO = mberManageService.selectMberCnf(mberConfigVO); - model.addAttribute("mberManageCnfVO", mberManageCnfVO); - mberManageVO.setMberSttus("DEFAULT"); - SiteManagerVO joinSiteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;//자동가입 여부 조회 - model.addAttribute("joinSiteManagerVO", joinSiteManagerVO); - if("/uss/umt/mber/EgovMberConfigInsertAjax.do".equals(request.getServletPath())){ - return "cmm/uss/umt/EgovMberConfigInsertAjax"; - } - return "cmm/uss/umt/EgovMberConfigInsert"; - } - - /* 회원이름 업데이트*/ - @RequestMapping("/uss/umt/EgovMberNameUpdateAjax.do") - public ModelAndView updateMberNameUpdateAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - mberManageVO.setMberNm(egovCryptoUtil.encrypt(mberManageVO.getMberNm())); - mberManageService.updateMberNm(mberManageVO); - return modelAndView; - - //userSearchVO.setSnsSiteName(egovCryptoUtil.encrypt(userSearchVO.getSearchKeyword())); - } - - /* 회원가입 설정 업데이트*/ - @RequestMapping("/uss/umt/EgovMberConfigUpdateAjax.do") - public ModelAndView updateMberConfigUpdateAjax(@ModelAttribute("mberManageConfigVO") MberManageConfigVO mberManageConfigVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - mberManageService.updateMberCnf(mberManageConfigVO); - return modelAndView; - } - - /*자동가입 설정 업데이트*/ - @RequestMapping("/uss/umt/EgovMberJoinAutoUpdateAjax.do") - public ModelAndView EgovMberJoinAutoUpdateAjax(SiteManagerVO siteManagerVO) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - egovSiteManagerService.updateJoinAutoAjax(siteManagerVO); - return modelAndView; - } - - /** - * 일반회원가입신청 등록화면으로 이동한다. - * @param userSearchVO 검색조건 - * @param mberManageVO 일반회원가입신청정보 - * @param commandMap 파라메터전달용 commandMap - * @param model 화면모델 - * @return uss/umt/user/EgovUserRegister - * @throws Exception - */ - @RequestMapping("/uss/umt/mber/EgovMberRegister.do") - public String EgovMberRegister(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("mberManageVO") MberManageVO mberManageVO, - @RequestParam Map commandMap, Model model) throws Exception { - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - List passwordHint_result = cmmUseService.selectCmmCodeDetail(vo); - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - - model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록 - model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록 - if (!"".equals(commandMap.get("realname"))) { - model.addAttribute("mberNm", commandMap.get("realname")); //실명인증된 이름 - 주민번호 인증 - model.addAttribute("ihidnum", commandMap.get("ihidnum")); //실명인증된 주민등록번호 - 주민번호 인증 - } - if (!"".equals(commandMap.get("realName"))) { - model.addAttribute("mberNm", commandMap.get("realName")); //실명인증된 이름 - ipin인증 - } - - //이메일 코드 - vo.setCodeId("COM103"); - List emailCodeList = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("emailCodeList", emailCodeList); //이메일코드 - - //회원가입 config 정보 가져오기 - MberManageConfigVO voTemp = new MberManageConfigVO(); - //List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); - List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); - for (MberManageConfigVO configVO : mberManageCnfVO) { - model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송 - } - - model.addAttribute("mberManageCnfVO", mberManageCnfVO); - mberManageVO.setMberSttus("DEFAULT"); - - return "cmm/uss/umt/EgovMberRegister"; - } - - /** - * 모달조회 - * @return String - * @exception Exception - */ - @RequestMapping(value="/EgovModal.do") - public String EgovModal() throws Exception { - return "cmm/uss/umt/EgovModal"; - } - - /** - * 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인 - * @param commandMap 파라메터전달용 commandMap - * @param model 화면모델 - * @return uss/umt/EgovIdDplctCnfirm - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/user/EgovIdDplctCnfirmAjax.do") - public ModelAndView EgovIdDplctCnfirmAjax(@RequestParam Map commandMap) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - String checkId = (String) commandMap.get("checkId"); - //checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8"); - - int usedCnt = userManageService.checkIdDplct(checkId); - modelAndView.addObject("usedCnt", usedCnt); - modelAndView.addObject("checkId", checkId); - - return modelAndView; - } - - /** - * 일반회원가입신청등록처리후로그인화면으로 이동한다. - * @param mberManageVO 일반회원가입신청정보 - * @return forward:/uss/umt/user/EgovUserExpInsert.do - * @throws Exception - */ - @RequestMapping("/uss/umt/user/EgovMberInsert.do") - public String EgovMberInsert( - @ModelAttribute("mberManageVO") MberManageVO mberManageVO, - BindingResult bindingResult, - Model model, - RedirectAttributes redirectAttributes) throws Exception { - if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) { - return "redirect:/uss/umt/user/EgovUserManage.do"; - } - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - /*if(!validationPasswd(mberManageVO.getPassword())){ - redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다."); - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - }*/ - - beanValidator.validate(mberManageVO, bindingResult); - if (bindingResult.hasErrors()){ - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //소속기관코드를 코드정보로부터 조회 - COM025 - vo.setCodeId("COM025"); - model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); - - //조직정보를 조회 - ORGNZT_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); - - //그룹정보를 조회 - GROUP_ID정보 - vo.setTableNm("LETTNORGNZTINFO"); - model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); - //return "forward:/uss/umt/user/EgovUserInsertView.do"; - return "cmm/uss/umt/EgovUserInsert"; - }else{ - try{ - //userManageService.insertUser(userManageVO); - mberManageService.insertMber(mberManageVO); //일반사용자 등록 - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert")); - }catch(Exception e){ - redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert")); - } - } - //관리자등록일 경우 - if(mberManageVO.getGnrlUser().equals("N")) { - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - //사용자 등록일 경우 - RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); - return redirectUrlMaker.getRedirectUrl(); - } - - - /** - * 일반회원목록을 조회한다. (pageing) - * @param userSearchVO 검색조건정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovMberManage - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/mber/EgovMberList.do") - public String EgovMberList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, ModelMap model) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - if(userSearchVO.getPageUnit() != 10) { - userSearchVO.setPageUnit(userSearchVO.getPageUnit()); - } - - /** pageing */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); - paginationInfo.setPageSize(userSearchVO.getPageSize()); - - userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); - userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - - model.addAttribute("resultList", mberManageService.selectMberList(userSearchVO)); - - int totCnt = mberManageService.selectMberListTotCnt(userSearchVO); - paginationInfo.setTotalRecordCount(totCnt); - model.addAttribute("paginationInfo", paginationInfo); - - //일반회원 상태코드를 코드정보로부터 조회 - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - vo.setCodeId("COM013"); - model.addAttribute("entrprsMberSttus_result", cmmUseService.selectCmmCodeDetail(vo)); - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - SiteManagerVO siteManagerVO =new SiteManagerVO(); - siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; - model.addAttribute("siteManagerVO", siteManagerVO); - //return "cmm/uss/umt/EgovMberList"; - return "cmm/uss/umt/EgovGnrlUserManage"; - } - - /** - * 일반회원정보 수정을 위해 일반회원정보를 상세조회한다. - * @param mberId 상세조회대상 일반회원아이디 - * @param userSearchVO 검색조건 - * @param model 화면모델 - * @return uss/umt/EgovMberSelectUpdt - * @throws Exception - */ - @RequestMapping("/uss/umt/mber/EgovMberSelectUpdtView.do") - public String EgovMberSelectUpdtView(@RequestParam("selectedId") String uniqId, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception { - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (!isAuthenticated) { - return "index"; - } - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - //패스워드힌트목록을 코드정보로부터 조회 - vo.setCodeId("COM022"); - List passwordHint_result = cmmUseService.selectCmmCodeDetail(vo); - - //성별구분코드를 코드정보로부터 조회 - vo.setCodeId("COM014"); - List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); - - //이메일 코드 - vo.setCodeId("COM103"); - List emailCodeList = cmmUseService.selectCmmCodeDetail(vo); - - //사용자상태코드를 코드정보로부터 조회 - vo.setCodeId("COM013"); - List mberSttus_result = cmmUseService.selectCmmCodeDetail(vo); - - //권한정보를 조회 - - //AuthorManageVO authorManageVO = new AuthorManageVO(); - //List authorManageList = egovAuthorManageService.selectAuthorUseAllList(authorManageVO); - - model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록 - model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록 - model.addAttribute("emailCodeList", emailCodeList); //이메일코드 - model.addAttribute("mberSttus_result", mberSttus_result); //사용자상태코드목록 - //model.addAttribute("authorManageList", authorManageList); //그룹정보 목록 - - //config 정보 가져오기 - MberManageConfigVO voTemp = new MberManageConfigVO(); - List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); - for (MberManageConfigVO configVO : mberManageCnfVO) { - model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송 - } - MberManageVO mberManageVO = mberManageService.selectMber(uniqId); - - //생일/핸드폰번호/이메일 VO에서 자르기? - String birth = mberManageVO.getBirth(); - - if (!EgovStringUtil.isEmpty(birth)) { - mberManageVO.setBirthYear(birth.substring(0, 4)); - mberManageVO.setBirthMonth(birth.substring(4, 6)); - mberManageVO.setBirthDay(birth.substring(6, 8)); - } - - String moblphonNo = mberManageVO.getMoblphonNo(); - if (!EgovStringUtil.isEmpty(moblphonNo)) { - int subSize = 0; - if (moblphonNo.length() > 10) subSize = 7; - else subSize = 6; - - mberManageVO.setMoblphonNo1(moblphonNo.substring(0, 3)); - mberManageVO.setMoblphonNo2(moblphonNo.substring(3, subSize)); - mberManageVO.setMoblphonNo3(moblphonNo.substring(subSize, moblphonNo.length())); - } - - String mberEmailAdres = mberManageVO.getMberEmailAdres(); - if (!EgovStringUtil.isEmpty(mberEmailAdres)) { - String[] emailAdres = EgovStringUtil.split(mberEmailAdres, "@"); - mberManageVO.setEmail1(emailAdres[0]); - mberManageVO.setEmail2(emailAdres[1]); - } - - // 사진파일ID - mberManageVO.setAtchFileId(mberManageVO.getPhotofileId()); - //기존 권한 코드 - mberManageVO.setOrignlAuthorCode(mberManageVO.getAuthorCode()); - - model.addAttribute("mberManageVO", mberManageVO); - model.addAttribute("userSearchVO", userSearchVO); - - return "cmm/uss/umt/EgovMberSelectUpdtView"; - } - - /** - * 일반회원정보 수정후 목록조회 화면으로 이동한다. - * @param mberManageVO 일반회원수정정보 - * @param bindingResult 입력값검증용 bindingResult - * @param model 화면모델 - * @return forward:/uss/umt/EgovMberManage.do - * @throws Exception - */ - @RequestMapping("/uss/umt/mber/EgovMberSelectUpdt.do") - public String EgovMberSelectUpdt(@ModelAttribute("mberManageVO") MberManageVO mberManageVO, BindingResult bindingResult, Model model) throws Exception { - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (!isAuthenticated) { - return "forward:/uss/umt/mber/EgovMberList.do"; - } - - beanValidator.validate(mberManageVO, bindingResult); - if (bindingResult.hasErrors()) { - model.addAttribute("message", bindingResult.getAllErrors().get(0).getDefaultMessage()); - return "forward:/uss/umt/EgovMberManage.do"; - } else { - if (EgovStringUtil.isEmpty(mberManageVO.getGroupId())) { - mberManageVO.setGroupId(null); - } - - mberManageService.updateMber(mberManageVO); - //Exception 없이 진행시 수정성공메시지 - model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); - return "forward:/uss/umt/mber/EgovMberList.do"; - } - } - - /** - * 일반회원정보삭제후 목록조회 화면으로 이동한다. - * @param checkedIdForDel 삭제대상 아이디 정보 - * @param userSearchVO 검색조건정보 - * @param model 화면모델 - * @return forward:/uss/umt/EgovMberManage.do - * @throws Exception - */ - @RequestMapping("/uss/umt/mber/EgovMberDelete.do") - public String EgovMberDelete(final MultipartHttpServletRequest multiRequest, @RequestParam("checkedIdForDel") String checkedIdForDel, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception { - - if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey" , multiRequest)) { - return "redirect:/uss/umt/mber/EgovMberList.do"; - } - - // 미인증 사용자에 대한 보안처리 - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if(!isAuthenticated) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - return "uat/uia/EgovLoginUsr"; - } - - mberManageService.deleteMber(checkedIdForDel); - //Exception 없이 진행시 삭제성공메시지 - model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); - return "forward:/uss/umt/mber/EgovMberList.do"; - } - - private boolean validationPasswd(String pw){ - String pattern = "(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*()-+=])(?=\\S+$).{8,}"; - if(pw.matches(pattern)){ - return true; - } - return false; - } - - @RequestMapping(value = "/uss/umt/user/PassMissResetAjax.do") - public ModelAndView passMissResetAjax(@RequestParam Map commandMap, - LoginVO loginVO - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - loginService.updatePassMissReset(loginVO); - return modelAndView; - } - - //사용자 회원상태 변경 - @RequestMapping(value = "/uss/umt/user/updateEmplyrSttusCodeAjax.do") - public ModelAndView updateEmplyrSttusCodeAjax(@RequestParam Map commandMap, - LoginVO loginVO - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - loginService.updateEmplyrSttusCode(loginVO); - return modelAndView; - } - - /** - * - * (사용자) 차단 사용자목록을 조회한다. (pageing) - * @param userSearchVO 검색조건정보 - * @param model 화면모델 - * @return cmm/uss/umt/EgovUserManage - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/user/EgovBlockUserList.do") - public String selectBlockUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, - ModelMap model, - HttpSession session) throws Exception{ - - if(userSearchVO.getPageUnit() != 10) { - userSearchVO.setPageUnit(userSearchVO.getPageUnit()); - } - - /** pageing */ - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); - paginationInfo.setPageSize(userSearchVO.getPageSize()); - - userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); - userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - if(null != loginVO && !"super".equals(loginVO.getSiteId())){ - userSearchVO.setSiteId(loginVO.getSiteId()); - } - - userSearchVO.setAdminYn("N"); - if(null==userSearchVO.getSearchCondition_01()){ //최초 페이지 로딩시 차단목록 조회 - userSearchVO.setEmplyrSttusCode("B"); - }else{ - userSearchVO.setEmplyrSttusCode(userSearchVO.getSearchCondition_01()); - } - - if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - userSearchVO.setSearchSortCnd("uniqId"); - userSearchVO.setSearchSortOrd("desc"); - } - List resultList = userManageService.selectUserList(userSearchVO); - model.addAttribute("resultList", resultList); - paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); - model.addAttribute("paginationInfo", paginationInfo); - - //사용자상태코드를 코드정보로부터 조회 - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - vo.setCodeId("COM013"); - model.addAttribute("emplyrSttusCodeList", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 - - //권한조회 - AuthorManageVO authorManageVO = new AuthorManageVO(); - authorManageVO.setFirstIndex(0); - authorManageVO.setLastIndex(10); - authorManageVO.setRecordCountPerPage(10); - authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); - model.addAttribute("authorList", authorManageVO.getAuthorManageList()); - return "cmm/uss/umt/EgovBlockUserList"; - } - - - /** - * rsa 공개키, 개인키 생성 - * - * @param request - */ - /*public void initRsa(HttpServletRequest request) { - HttpSession session = request.getSession(); - - KeyPairGenerator generator; - try { - generator = KeyPairGenerator.getInstance(EgovUserManageController.RSA_INSTANCE); - generator.initialize(1024); - - KeyPair keyPair = generator.genKeyPair(); - KeyFactory keyFactory = KeyFactory.getInstance(EgovUserManageController.RSA_INSTANCE); - PublicKey publicKey = keyPair.getPublic(); - PrivateKey privateKey = keyPair.getPrivate(); - - session.setAttribute(EgovUserManageController.RSA_WEB_KEY, privateKey); // session에 RSA 개인키를 세션에 저장 - - RSAPublicKeySpec publicSpec = (RSAPublicKeySpec) keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class); - String publicKeyModulus = publicSpec.getModulus().toString(16); - String publicKeyExponent = publicSpec.getPublicExponent().toString(16); - - request.setAttribute("RSAModulus", publicKeyModulus); // rsa modulus 를 request 에 추가 - request.setAttribute("RSAExponent", publicKeyExponent); // rsa exponent 를 request 에 추가 - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - }*/ - - /** - * 복호화 - * - * @param privateKey - * @param securedValue - * @return - * @throws Exception - */ - /*private String decryptRsa(PrivateKey privateKey, String securedValue) throws Exception { - Cipher cipher = Cipher.getInstance(EgovUserManageController.RSA_INSTANCE); - byte[] encryptedBytes = hexToByteArray(securedValue); - cipher.init(Cipher.DECRYPT_MODE, privateKey); - byte[] decryptedBytes = cipher.doFinal(encryptedBytes); - String decryptedValue = new String(decryptedBytes, "utf-8"); // 문자 인코딩 주의. - return decryptedValue; - }*/ - - /** - * 16진 문자열을 byte 배열로 변환한다. - * - * @param hex - * @return - */ - public static byte[] hexToByteArray(String hex) { - if (hex == null || hex.length() % 2 != 0) { return new byte[] {}; } - - byte[] bytes = new byte[hex.length() / 2]; - for (int i = 0; i < hex.length(); i += 2) { - byte value = (byte) Integer.parseInt(hex.substring(i, i + 2), 16); - bytes[(int) Math.floor(i / 2)] = value; - } - return bytes; - } - - /* 회원가입 설정 업데이트*/ - @RequestMapping("/uss/umt/user/EgovBlockUserUpdateAjax.do") - public ModelAndView selectBlockUserAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - UserManageVO inertUserManageVO = new UserManageVO(); - //mberManageService.updateMberCnf(mberManageConfigVO); - try { - for(int i=0 ; i< userManageVO.getEsntlIdNsttusCode().length ; i++) { - inertUserManageVO.setEsntlId(userManageVO.getEsntlIdNsttusCode()[i].split(":")[0]); - inertUserManageVO.setEmplyrSttusCode(userManageVO.getEsntlIdNsttusCode()[i].split(":")[1]); - userManageService.updateUserSttusCode(inertUserManageVO); - } - - modelAndView.addObject("result", "success"); - }catch (Exception e) { - modelAndView.addObject("result", "fail"); - } - return modelAndView; - } - - /** - * 개인정보보호 비밀번호 체크 - * @param commandMap 파라메터전달용 commandMap - * @param model 화면모델 - * @return uss/umt/EgovIdDplctCnfirm - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/user/CheckInfoProtectAjax.do") - public ModelAndView CheckInfoProtectAjax(@RequestParam Map commandMap - ,UserManageVO userManageVO - ,HttpSession session - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - UserManageVO returnUserManageVO = new UserManageVO(); - userManageVO.setUniqId(userManageVO.getEsntlId()); - returnUserManageVO = userManageService.selectPassword(userManageVO) ; - if(null==returnUserManageVO) { //UserManageVO - modelAndView.addObject("usedCnt", 0); - }else { - String returnPassword = returnUserManageVO.getPassword() ; - //패스워드 암호화 - String encryptPass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId()); - if(returnPassword.equals(encryptPass)) { - modelAndView.addObject("usedCnt", 1); - //세션으로 인증넣어줌 - session.setAttribute("info_pro_session", true); - }else { - modelAndView.addObject("usedCnt", 0); - } - } - return modelAndView; - } - - /** - * 개인정보보호 하단 include - * @param commandMap 파라메터전달용 commandMap - * @param model 화면모델 - * @return uss/umt/EgovIdDplctCnfirm - * @throws Exception - */ - @RequestMapping(value = "/uss/umt/IncInfoProtect.do") - public String IncInfoProtect(ModelMap model, - HttpSession session) throws Exception{ - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - SiteManagerVO siteManagerVO =new SiteManagerVO(); - siteManagerVO.setSiteId(loginVO.getSiteId()); //자신이 속한 사이트 아이디 - siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; - model.addAttribute("siteManagerVO", siteManagerVO); - return "cmm/uss/umt/IncInfoProtect"; - } - - //리스트 엑셀 다운로드 - @RequestMapping(value="/uss/umt/user/userExcelDownload.do") - public void userExcelDownload(UserDefaultVO userSearchVO, - HttpServletRequest request, - HttpServletResponse response , - ModelMap model) throws Exception { - - userSearchVO.setRecordCountPerPage(100000); - userSearchVO.setFirstIndex(0); - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - if(null != loginVO && !"super".equals(loginVO.getSiteId())){ - userSearchVO.setSiteId(loginVO.getSiteId()); - } - // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. - SXSSFWorkbook wb = new SXSSFWorkbook(100); - CellStyle style = wb.createCellStyle(); - style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 - style.setBorderLeft(CellStyle.BORDER_THIN); - style.setBorderRight(CellStyle.BORDER_THIN); - style.setBorderTop(CellStyle.BORDER_THIN); - Font font = wb.createFont(); - font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold - - Cell cell = null; - Row row = null; - - String fileName ="관리자 리스트"; - if("Y".equals(userSearchVO.getGnrlUser())) fileName = "사용자 리스트" ; - - String sheetTitle = ""; - try{ - List userSearchList = userManageService.selectUserList(userSearchVO) ; - { //화면 리스트 - sheetTitle = "관리자 리스트(화면)" ; //제목 - if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(화면)" ; - Sheet sheet = wb.createSheet(sheetTitle); - row = sheet.createRow(0); - for(int i=0 ; i < userExcelValue.length ; i++) { - cell = row.createCell(i); - cell.setCellStyle(style); - cell.setCellValue(userExcelValue[i][1]); - } - - for(int i=0; i < userSearchList.size(); i++){ - row = sheet.createRow(i+1); - for(int j=0 ; j < userExcelValue.length ; j++) { - cell = row.createCell(j); - cell.setCellStyle(style); - if(j==0) cell.setCellValue(i+1); //번호 - if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteIdTxt")); //사이트명 - if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디 - if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명 - if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCodeTxt")); //권한 - if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호 - if(j==6) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일 - if(j==7) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("sbscrbDe")); //등록일 - } - } - } - { //DB리스트 - sheetTitle = "관리자 리스트(DB)" ; //제목 - if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(DB)" ; - Sheet sheet = wb.createSheet(sheetTitle); - row = sheet.createRow(0); - for(int i=0 ; i < userExcelValue.length-2 ; i++){ //아이디,등록일자 없어 -2 - cell = row.createCell(i); - cell.setCellStyle(style); - if(i==0) { - cell.setCellValue( "Y".equals(userSearchVO.getGnrlUser()) ? "사용자 아이디" : "관리자 아이디" ); - }else if(i==1){ - if(!"".equals(userExcelValue[i][3])){ - cell.setCellValue(userExcelValue[i][1]+"\n"+userExcelValue[i][3]); - }else { - cell.setCellValue(userExcelValue[i][1]); - } - }else{ //3번제 컬럼 부터 하나씩 앞으로 세팅 - if(!"".equals(userExcelValue[i+1][3])){ - cell.setCellValue(userExcelValue[i+1][1]+"\n"+userExcelValue[i+1][3]); - }else { - cell.setCellValue(userExcelValue[i+1][1]); - } - } - } - - for(int i=0; i < userSearchList.size(); i++){ - row = sheet.createRow(i+1); - /*for(int j=0 ; j < userExcelValue.length-1 ; j++) {*/ - for(int j=0 ; j < userExcelValue.length-2 ; j++) {//아이디 없어 -1 - cell = row.createCell(j); - cell.setCellStyle(style); - if(j==0) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디 - if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteId")); //사이트명 - if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명 - if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCode")); //권한 - if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호 - if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일 - } - } - - } - response.setHeader("Set-Cookie", "fileDownload=true; path=/"); - SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA ); - Date currentTime = new Date (); - String mTime = mSimpleDateFormat.format ( currentTime ); - fileName = fileName+"("+mTime+")"; - - response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx")); - wb.write(response.getOutputStream()); - - }catch(Exception e) { - response.setHeader("Set-Cookie", "fileDownload=false; path=/"); - response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); - response.setHeader("Content-Type","text/html; charset=utf-8"); - OutputStream out = null; - try { - out = response.getOutputStream(); - byte[] data = new String("fail..").getBytes(); - out.write(data, 0, data.length); - } catch(Exception ignore) { - System.out.println("Exception Occured!!!"); - } finally { - if(out != null) try { out.close(); } catch(Exception ignore) {System.out.println("Exception Occured!!!");} - } - }finally { - // 디스크 적었던 임시파일을 제거합니다. - wb.dispose(); - try { wb.close(); } catch(Exception ignore) {System.out.println("Exception Occured!!!");} - } - } - - //자동완성 데이터 가져오기 - @RequestMapping(value = "/uat/uia/RecentSearchShowAjax.do", method = RequestMethod.GET, produces="text/plain;charset=UTF-8") - @ResponseBody - public String recentSearchShowAjax(Locale locale, - UserManageVO userManageVO, - Model model, - HttpSession session) throws Exception { - //DB부하로 로그인시 session 의 최근 검색어를 가져옴. - Gson gson = new Gson(); - return gson.toJson(session.getAttribute("recentSearch")); - } - - /** - * 검색 버튼 클릭시 최근검색어 등록 - */ - @RequestMapping("/uat/uia/RecentSearchUpdateAjax.do") - public ModelAndView RecentSearchUpdateAjax(UserManageVO userManageVO, - HttpSession session - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - if(null != session.getAttribute("loginId")) { //로그인시 - if(null != session.getAttribute("recentSearch")){ //세션이 없으면(로그인 안함) DB조회 - List arrRecentSearch = (List)session.getAttribute("recentSearch") ; - arrRecentSearch.add(0 , userManageVO.getSearchWord()); //맨앞 추가; - - //사이트별 갯수 세팅 - List siteManageList = (List)session.getAttribute("siteManageList") ; - for(SiteManagerVO siteManagerVO : siteManageList) { - if(siteManagerVO.getSiteId().equals((String)session.getAttribute("siteId"))){ - //RECENT_SEARCH_CD` char(1) DEFAULT 'N' COMMENT '최근검색어 관리코드(N:사용안함,5:5개,9:10개)' - if("N".equals(siteManagerVO.getRecentSearchCd())){ //사용안함 - arrRecentSearch = arrRecentSearch.subList(0 ,0) ; - }else if("5".equals(siteManagerVO.getRecentSearchCd())){ - if(arrRecentSearch.size() > 5) { - arrRecentSearch = arrRecentSearch.subList(0 ,5) ; - }else { - arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ; - } - }else{ //9면 10개까지 - if(arrRecentSearch.size() > 10) { - arrRecentSearch = arrRecentSearch.subList(0 , 10) ; - }else { - arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ; - } - } - break; - } - } - - //중복값 제거 - ArrayList arrList = new ArrayList(); - HashSet hs = new HashSet(arrRecentSearch); - Iterator it = hs.iterator(); - String tempStr = ""; - while(it.hasNext()){ - tempStr = (String)it.next(); - if(!"".equals(tempStr)) { - arrList.add(tempStr) ; - } - tempStr = ""; - } - arrRecentSearch = arrList ; - - //추가된 값을 세션에 넣는다. - session.setAttribute("recentSearch", arrRecentSearch) ; - //String 변환 및 DB 업데이트 - userManageVO.setEmplyrId((String)session.getAttribute("loginId")); - userManageVO.setSearchWord(String.join(",", arrRecentSearch)); - userManageService.insertUpdateSearchWord(userManageVO); - }else{ - - } - } - - /*egovSiteManagerService.updateAdminLogKpCd(siteManagerVO); - modelAndView.addObject("siteManagerVO", siteManagerVO);*/ - return modelAndView; - } - - - - @RequestMapping("/getUrlAjax.do") - public ModelAndView getUrlAjax(UserManageVO userManageVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - StringBuffer sbuf = new StringBuffer(); - StringBuffer result = new StringBuffer(); - try { - // URL 객체 생성 - String strurlOri = "https://www.warmemo.or.kr/front/militaryInfo/searchView.do?idx=" ; - - String strurl = ""; - for(int i = 2073 ; i <= 2430 ; i++) { - strurl = strurlOri+i; - URL url = new URL(strurl); - // URLConnection 생성 - URLConnection urlConn = url.openConnection(); - InputStream is = urlConn.getInputStream(); - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); - BufferedReader br = new BufferedReader(isr); - String str ; - int line = 0; - while((str=br.readLine()) != null){ - - sbuf.append(str + "\r\n") ; - if(line != 0) { - line++; - } - if(str.contains("
")) { - line ++; - } - - if(line == 3) { - result.append(strurl +"," + str.trim()+"," ); - } - - if(str.contains("유형 :")) { - result.append(str.split(":")[1].trim()+"\n"); - } - } - - } - - } catch (MalformedURLException e) { - System.out.println("MalformedURLException Occured!!!"); - } catch (IOException e) { - System.out.println("IOException Occured!!!"); - } - - return modelAndView; - } - +package kcc.let.uss.umt.web; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import com.google.gson.Gson; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.ComDefaultCodeVO; +import kcc.com.cmm.EgovMessageSource; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.cmm.util.EgovDoubleSubmitHelper; +import kcc.com.cmm.util.RedirectUrlMaker; +import kcc.com.utl.fcc.service.EgovStringUtil; +import kcc.let.org.service.LocVO; +import kcc.let.org.service.OrgChartManageService; +import kcc.let.sec.ram.service.AuthorManageVO; +import kcc.let.sec.ram.service.EgovAuthorManageService; +import kcc.let.sec.rgm.service.AuthorGroup; +import kcc.let.sec.rgm.service.EgovAuthorGroupService; +import kcc.let.sym.site.service.EgovSiteManagerService; +import kcc.let.sym.site.service.SiteManagerVO; +import kcc.let.uat.uia.service.EgovLoginService; +import kcc.let.uss.umt.service.EgovMberManageService; +import kcc.let.uss.umt.service.EgovUserManageService; +import kcc.let.uss.umt.service.MberManageConfigVO; +import kcc.let.uss.umt.service.MberManageVO; +import kcc.let.uss.umt.service.UserDefaultVO; +import kcc.let.uss.umt.service.UserManageVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.sim.service.EgovFileScrty; + +/** + * 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다 + * @author 공통서비스 개발팀 조재영 + * @since 2009.04.10 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.10  조재영          최초 생성
+ *   2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성
+ *
+ * 
+ */ +@Controller +public class EgovUserManageController { + +// static String RSA_WEB_KEY = "_RSA_WEB_Key_1"; // 개인키 session key +// static String RSA_INSTANCE = "RSA"; // rsa transformation + + /** userManageService */ + @Resource(name = "userManageService") + private EgovUserManageService userManageService; + + /** cmmUseService */ + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + /** EgovMessageSource */ + @Resource(name = "egovMessageSource") + EgovMessageSource egovMessageSource; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** mberManageService */ + @Resource(name = "mberManageService") + private EgovMberManageService mberManageService; + + /** DefaultBeanValidator beanValidator */ + @Autowired + private DefaultBeanValidator beanValidator; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; + + /*@Resource(name = "EgovOrgChartManageService") + private EgovOrgChartManageService orgChartManageService;*/ + + @Resource(name = "orgChartManageService") + private OrgChartManageService orgChartManageService; + + + @Resource(name = "egovAuthorGroupService") + private EgovAuthorGroupService egovAuthorGroupService; + + @Resource(name = "egovSiteManagerService") + private EgovSiteManagerService egovSiteManagerService; + + @Resource(name = "loginService") + private EgovLoginService loginService; + + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + + private String topLocNo = "1000000" ; //전역 최상위 매뉴번호 + + + //배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"} + private String[][] userExcelValue ={ + {"0" ,"번호" , "1" , "" }, + {"1", "사이트명" , "ITN" , "[코드]"}, + {"2", "아이디" , "testId", ""}, + {"3", "이름" , "홍길동", ""}, + {"4", "권한" , "일반관리자", "[코드]"}, + {"5", "전화번호(부서)" , "02-123-4567", ""}, + {"6", "이메일" , "test@kcc.co.kr", ""}, + {"7", "등록일" ,"2019-10-31", ""} + } ; + /** + * + * (관리자)관리자목록을 조회한다. (pageing) + * @param userSearchVO 검색조건정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovUserManage + * @throws Exception + */ + @RequestMapping(value = {"/uss/umt/user/EgovUserManage.do", "/uss/umt/user/EgovUserManageMenuAjax.do"}) + public String selectUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, + ModelMap model, + HttpServletRequest request, + HttpSession session) throws Exception { + { + //일반관리자가 좌측의 매뉴의 관리자 관리 클릭시 리스트가 아닌 자신의 정보수정페이지로 리로딩. + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음. + loginVO.setId(loginVO.getId()); + if(!"ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){//최고관리자 아닐경우 + return "redirect:/EgovTopPageLink.do?link=/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginVO.getUniqId()+"&baseMenuNo=3500000" ; + } + } + + if(userSearchVO.getPageUnit() != 10) { + userSearchVO.setPageUnit(userSearchVO.getPageUnit()); + } + + try{ + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); + paginationInfo.setPageSize(userSearchVO.getPageSize()); + + userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + //userSearchVO.setAdminYn("Y"); + if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + userSearchVO.setSearchSortCnd("uniqId"); + userSearchVO.setSearchSortOrd("desc"); + } + List resultList = userManageService.selectUserList(userSearchVO) ; + model.addAttribute("resultList", resultList); + //paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); + int i_resultList = resultList.size(); + + /* + if (i_resultList>0) { + String g_resultList = ((EgovMap)resultList.get(0)).get("totCnt").toString(); + } + */ + + //paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((int)((EgovMap)resultList.get(0)).get("totCnt")) : 0); + paginationInfo.setTotalRecordCount(i_resultList); + model.addAttribute("paginationInfo", paginationInfo); + + //사용자상태코드를 코드정보로부터 조회 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM038"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + + if("/uss/umt/user/EgovUserManageMenuAjax.do".equals(request.getServletPath())) { + return "cmm/uss/umt/EgovUserManageMenuAjax"; + } + }catch(Exception ex) { + ex.printStackTrace(); + } + + + return "cmm/uss/umt/EgovUserManage"; + } + + /** + * + * (사용자) 사용자목록을 조회한다. (pageing) + * @param userSearchVO 검색조건정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovUserManage + * @throws Exception + */ + + @RequestMapping(value = "/uss/umt/user/EgovGnrlUserManage.do") + public String selectGnrlUserManage(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, + ModelMap model, + HttpSession session) throws Exception { + + if(userSearchVO.getPageUnit() != 10) { + userSearchVO.setPageUnit(userSearchVO.getPageUnit()); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); + paginationInfo.setPageSize(userSearchVO.getPageSize()); + + userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + + userSearchVO.setAdminYn("N"); + if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + userSearchVO.setSearchSortCnd("uniqId"); + userSearchVO.setSearchSortOrd("desc"); + } + //이름 검색 암호화 + userSearchVO.setSnsSiteName(egovCryptoUtil.encrypt(userSearchVO.getSearchKeyword())); + + List resultList = mberManageService.selectMberList(userSearchVO); + + //이름 복호화 + + model.addAttribute("resultList", resultList); +// paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); + paginationInfo.setTotalRecordCount(10); + model.addAttribute("paginationInfo", paginationInfo); + + //사용자상태코드를 코드정보로부터 조회 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM038"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + return "cmm/uss/umt/EgovGnrlUserManage"; + } + + /** + * (관리자) 사용자등록화면으로 이동한다. + * @param userSearchVO 검색조건정보 + * @param userManageVO 사용자초기화정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovUserInsert + * @throws Exception + */ + @RequestMapping("/uss/umt/user/EgovUserInsertView.do") + public String insertUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("userManageVO") UserManageVO userManageVO,Model model) + throws Exception { + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + + //조직도 정보조회 + /*PartInfVO partInfVO = new PartInfVO(); + partInfVO.setDepth(1); + List orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO); + model.addAttribute("orgChartDepth1", orgChartDepth1);*/ + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorSet("01"); + authorManageVO.setSearchSortCnd("sort_num"); + authorManageVO.setSearchSortOrd("desc"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + + + //selectbox 미리 만들기 + LocVO locVO = new LocVO(); + locVO.setTopLocNo(topLocNo); //최상위 매뉴번호 + List orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO); + String userOneDepth = ""; + String userTwoDepth = ""; + + if(null != userManageVO.getPartIdx() && !"".equals(userManageVO.getPartIdx())) { + for(LocVO tempLocVO : orgHiddenList) { + if(userManageVO.getPartIdx().equals(tempLocVO.getId())){ + if(1==tempLocVO.getDepths()) { //1뎁스면 조회 안함 + userOneDepth = tempLocVO.getId(); + }else { //2뎁스면 + userTwoDepth = tempLocVO.getId() ; + userOneDepth = tempLocVO.getParent() ; + } + } + } + } + model.addAttribute("userOneDepth", userOneDepth); + model.addAttribute("userTwoDepth", userTwoDepth); + model.addAttribute("orgHiddenList", orgHiddenList); + + return "cmm/uss/umt/EgovUserInsert"; + } + + /** + * (사용자) 사용자등록화면으로 이동한다. + * @param userSearchVO 검색조건정보 + * @param userManageVO 사용자초기화정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovUserInsert + * @throws Exception + */ + @RequestMapping(value= {"/uss/umt/user/EgovGnrlUserInsertView.do", "/uss/umt/user/EgovGnrlUserInsertViewAjax.do"} ) + public String insertGnrlUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, + @ModelAttribute("mberManageVO") MberManageVO mberManageVO, + HttpSession session, + HttpServletRequest request, + Model model) + throws Exception { + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + + //조직도 정보조회 + /*PartInfVO partInfVO = new PartInfVO(); + partInfVO.setDepth(1); + List orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO); + model.addAttribute("orgChartDepth1", orgChartDepth1);*/ + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + + //config 정보 가져오기 + MberManageConfigVO mberConfigVO = new MberManageConfigVO(); + mberConfigVO.setUseYn("Y"); //사용하는것만 + mberConfigVO.setIsSns("N");; + List mberManageCnfList = mberManageService.selectMberCnf(mberConfigVO); + model.addAttribute("mberManageCnfList", mberManageCnfList); + if("/uss/umt/user/EgovGnrlUserInsertViewAjax.do".equals(request.getServletPath())) { + return "cmm/uss/umt/EgovGnrlUserInsertAjax"; + } + return "cmm/uss/umt/EgovGnrlUserInsert"; + } + + /** + * 사용자등록처리후 목록화면으로 이동한다. + * @param userManageVO 사용자등록정보 + * @param bindingResult 입력값검증용 bindingResult + * @param model 화면모델 + * @return forward:/uss/umt/user/EgovUserManage.do + * @throws Exception + */ + @RequestMapping("/uss/umt/user/EgovUserInsert.do") + public String insertUser(@ModelAttribute("userManageVO") UserManageVO userManageVO, BindingResult bindingResult, Model model , RedirectAttributes redirectAttributes) throws Exception { + if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) { + return "redirect:/uss/umt/user/EgovUserManage.do"; + } + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + if(!validationPasswd(userManageVO.getPassword())){ + redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + beanValidator.validate(userManageVO, bindingResult); + if (bindingResult.hasErrors()){ + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + //return "forward:/uss/umt/user/EgovUserInsertView.do"; + return "cmm/uss/umt/EgovUserInsert"; + }else{ + try{ + userManageService.insertUser(userManageVO); + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert")); + }catch(Exception e){ + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert")); + } + } + //관리자등록일 경우 + System.out.println("userManageVO.getGnrlUser() :: "+ userManageVO.getGnrlUser()); + if(userManageVO.getGnrlUser().equals("N")) { + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + //사용자 등록일 경우 + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + //return "redirect:/uss/umt/user/EgovUserManage.do"; + } + + /** + * 사용자정보 수정을 위해 사용자정보를 상세조회한다. + * 최고관리자의 경우에는 비밀번호를 체크하지 않는다. + * @param uniqId 상세조회대상 사용자아이디 + * @param userSearchVO 검색조건 + * @return cmm/uss/umt/EgovUserSelectUpdt + * @param model 화면모델 + * @throws Exception + */ + @RequestMapping("/uss/umt/user/EgovUserSelectUpdtView.do") + public String updateUserView(@RequestParam("selectedId") String uniqId, + @ModelAttribute("searchVO") UserDefaultVO userSearchVO, + HttpServletRequest request, + @RequestParam Map commandMap, + Model model) throws Exception { + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if(!"ROLE_ADMIN".equals(loginVO.getAuthority()) && !uniqId.equals(loginVO.getUniqId())) { + /*return "/cmm/main/mainPage.do";*/ + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/cmm/main/mainPage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + try { + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + + UserManageVO userManageVO = new UserManageVO(); + userManageVO = userManageService.selectUser(uniqId); + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("userManageVO", userManageVO); + + System.out.println("userManageVO"); + System.out.println(userManageVO); + + if(userManageVO == null){ + /*redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select")); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl();*/ + } + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorSet("01"); + authorManageVO.setSearchSortCnd("sort_num"); + authorManageVO.setSearchSortOrd("desc"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + //initRsa(request); + + if("ROLE_ADMIN".equals(loginVO.getAuthority())) { + model.addAttribute("isAdmin", "Y"); + } + + if("ROLE_USER_MEMBER".equals(loginVO.getAuthority())) { + model.addAttribute("isMember", "Y"); + } + + //selectbox 미리 만들기 + LocVO locVO = new LocVO(); + locVO.setTopLocNo(topLocNo); //최상위 매뉴번호 + List orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO); + String userOneDepth = ""; + String userTwoDepth = ""; + + if(null != userManageVO.getPartIdx() + && !"".equals(userManageVO.getPartIdx()) + ) { + for(LocVO tempLocVO : orgHiddenList) { + if(userManageVO.getPartIdx().equals(tempLocVO.getId())){ + if(1==tempLocVO.getDepths()) { //1뎁스면 조회 안함 + userOneDepth = tempLocVO.getId(); + }else { //2뎁스면 + userTwoDepth = tempLocVO.getId() ; + userOneDepth = tempLocVO.getParent() ; + } + } + } + } + model.addAttribute("userOneDepth", userOneDepth); + model.addAttribute("userTwoDepth", userTwoDepth); + model.addAttribute("orgHiddenList", orgHiddenList); + }catch(Exception ex) { + ex.printStackTrace(); + } + + return "cmm/uss/umt/EgovUserSelectUpdt"; + } + + //사용자 수정화면 + @RequestMapping("/uss/umt/user/EgovGnrlUserSelectUpdtView.do") + public String updateGnrlUserView(@RequestParam("selectedId") String uniqId, + HttpServletRequest request, + @ModelAttribute("searchVO") UserDefaultVO userSearchVO, + @ModelAttribute("mberManageVO") MberManageVO mberManageVO, + RedirectAttributes redirectAttributes , + Model model, + HttpSession session) throws Exception { + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCodeList", cmmUseService.selectCmmCodeDetail(vo)); + + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + + mberManageVO = mberManageService.selectMber(uniqId) ; + + model.addAttribute("userSearchVO", userSearchVO); + + mberManageVO.setMberNm(egovCryptoUtil.decrypt(mberManageVO.getMberNm())); + + model.addAttribute("mberManageVO", mberManageVO); + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); +// authorManageVO.setAuthorSet("02"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + + if(mberManageVO == null){ + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select")); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + + //config 정보 가져오기 + MberManageConfigVO mberConfigVO = new MberManageConfigVO(); + mberConfigVO.setUseYn("Y"); //사용하는것만 + mberConfigVO.setIsSns("N"); //SNS는 제외 + List mberManageCnfList = mberManageService.selectMberCnf(mberConfigVO); + for(MberManageConfigVO mberVO : mberManageCnfList) { //하드코딩.... + /*if("offmTelno".equals(mberVO.getConfigId())){ //전화번호 + mberVO.setParmValue(mberManageVO.getMoblphonNo()); + mberVO.setValidateName("numberOnly2"); + }*/ + if("moblphonNo".equals(mberVO.getConfigId())){ //핸드폰 + mberVO.setParmValue(mberManageVO.getMoblphonNo()); + mberVO.setValidateName("numberOnly2"); + } + if("adres".equals(mberVO.getConfigId())){ //주소 + mberVO.setParmValue(mberManageVO.getAdres()); + } + + if("detailAdres".equals(mberVO.getConfigId())){ //상세주소 + mberVO.setParmValue(mberManageVO.getDetailAdres()); + } + + if("mberFxnum".equals(mberVO.getConfigId())){ //팩스번호 + mberVO.setParmValue(mberManageVO.getMberFxnum()); + mberVO.setValidateName("numberOnly2"); + } + if("mberEmailAdres".equals(mberVO.getConfigId())){ //이메일 + mberVO.setParmValue(mberManageVO.getMberEmailAdres()); + } + if("zip".equals(mberVO.getConfigId())){ //우편번호 + mberVO.setParmValue(mberManageVO.getZip()); + mberVO.setValidateName("numberOnly"); + } + if("emailYn".equals(mberVO.getConfigId())){ //이메일수신여부 + mberVO.setParmValue(mberManageVO.getEmailYN()); + } + if("smsYN".equals(mberVO.getConfigId())){ //문자수신여부 + mberVO.setParmValue(mberManageVO.getSmsYN()); + } + } + + model.addAttribute("mberManageCnfList", mberManageCnfList); + +// initRsa(request); + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음. + loginVO.setId(loginVO.getId()); + if("ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){ + model.addAttribute("roleAdmin", "Y"); + } + return "cmm/uss/umt/EgovGnrlUserSelectUpdt"; + } + + /** + * 관리자 정보 수정후 목록조회 화면으로 이동한다. + * @param userManageVO 사용자수정정보 + * @param bindingResult 입력값검증용 bindingResult + * @param model 화면모델 + * @return forward:/uss/umt/user/EgovUserManage.do + * @throws Exception + */ + @RequestMapping(value= {"/uss/umt/user/EgovUserSelectUpdt.do", "/uss/umt/user/EgovUserSelectUpdtAjax.do"}) + public String updateUser(@ModelAttribute("userManageVO") UserManageVO userManageVO, + HttpSession session, HttpServletRequest request , + BindingResult bindingResult, + RedirectAttributes redirectAttributes, + Model model) throws Exception { + + String s_authorCode = request.getParameter("authorCode"); + String[] s_arr = request.getParameterValues("userWork"); + + if ("ROLE_ADR_JRSDC".equals(s_authorCode)) { //기소유예관할인 경우 + userManageVO.setUserWork(s_arr[1]); + }else { + userManageVO.setUserWork(s_arr[0].replaceAll(","+s_arr[1], "")); + } + + /* + + System.out.println(request.getParameter("authorCode")); + System.out.println(request.getParameter("authorCode")); + System.out.println(request.getParameter("userWork")); + + + System.out.println("start"); + for (int i=0;i commandMap, ModelMap model) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + String checkId = (String) commandMap.get("checkId"); + checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8"); + + if (checkId == null || checkId.equals("")) + return "forward:/uss/umt/EgovIdDplctCnfirmView.do"; + + int usedCnt = userManageService.checkIdDplct(checkId); + model.addAttribute("usedCnt", usedCnt); + model.addAttribute("checkId", checkId); + + return "cmm/uss/umt/EgovIdDplctCnfirm"; + } + + /** + * 업무사용자 암호 수정처리 후 화면 이동 + * @param model 화면모델 + * @param commandMap 파라메터전달용 commandMap + * @param userSearchVO 검색조 건 + * @param userManageVO 사용자수정정보(비밀번호) + * @return cmm/uss/umt/EgovUserPasswordUpdt + * @throws Exception + */ + //기존 비밀번호 체크 있는 버전 + /*@RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdt.do") + public String updatePassword(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, + @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + List authorities = EgovUserDetailsHelper.getAuthorities(); + boolean authFlag = false; + + for (String authority : authorities) { + if (authority.equals("ROLE_ADMIN")) authFlag = true; + } + + String newPassword = (String) commandMap.get("newPassword"); + + if(!validationPasswd(newPassword)){ + model.addAttribute("userManageVO", userManageVO); + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("adminYn", authFlag); + model.addAttribute("message", "비밀번호은(는) 문자+숫자+특수문자 포함, 8~20자 내에서 입력해야 합니다."); + return "cmm/uss/umt/EgovUserPasswordUpdt"; + } + + String oldPassword = (String) commandMap.get("oldPassword"); +// String newPassword = (String) commandMap.get("newPassword"); + String newPassword2 = (String) commandMap.get("newPassword2"); + String uniqId = (String) commandMap.get("uniqId"); + + boolean isCorrectPassword = false; + UserManageVO resultVO = new UserManageVO(); + userManageVO.setPassword(newPassword); + userManageVO.setOldPassword(oldPassword); + userManageVO.setUniqId(uniqId); + + String resultMsg = ""; + resultVO = userManageService.selectPassword(userManageVO); + //패스워드 암호화 + String encryptPass = EgovFileScrty.encryptPassword(oldPassword, userManageVO.getEmplyrId()); + + for (String authority : authorities) { //일반사용자까지 + if (authority.equals("ROLE_ADMIN") || authority.equals("ROLE_USER_MEMBER")) authFlag = true; + } + + authFlag = false; //GS인증으로 이전비밀번호 체크 + if (encryptPass.equals(resultVO.getPassword()) || authFlag) { + if (newPassword.equals(newPassword2)) { + isCorrectPassword = true; + } else { + isCorrectPassword = false; + resultMsg = "fail.user.passwordUpdate2"; + } + } else { + isCorrectPassword = false; + resultMsg = "fail.user.passwordUpdate1"; + } + + if (isCorrectPassword) { + userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId())); + userManageService.updatePassword(userManageVO); + model.addAttribute("userManageVO", userManageVO); + resultMsg = "success.common.update"; + } else { + model.addAttribute("userManageVO", userManageVO); + } + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("message", resultMsg); + + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage(resultMsg)); + if(userSearchVO.getGnrlUser().equals("N")) { //관리자 비밀번호 변경시 + + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) { + LoginVO tempUser = new LoginVO(); + tempUser.setId(userManageVO.getEmplyrId()); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId()); + return redirectUrlMaker.getRedirectUrl(); + }else { + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + //return "cmm/uss/umt/EgovUserPasswordUpdt"; + } //사용자 비밀번호 변경시 + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + + }*/ + @RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdt.do") + public String updatePassword(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, + @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + List authorities = EgovUserDetailsHelper.getAuthorities(); + boolean authFlag = false; + + for (String authority : authorities) { + if (authority.equals("ROLE_ADMIN")) authFlag = true; + } + + String newPassword = (String) commandMap.get("newPassword"); + + if(!validationPasswd(newPassword)){ + model.addAttribute("userManageVO", userManageVO); + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("adminYn", authFlag); + model.addAttribute("message", "비밀번호은(는) 문자+숫자+특수문자 포함, 8~20자 내에서 입력해야 합니다."); + return "cmm/uss/umt/EgovUserPasswordUpdt"; + } + +// String oldPassword = (String) commandMap.get("oldPassword"); +// String newPassword = (String) commandMap.get("newPassword"); + String newPassword2 = (String) commandMap.get("newPassword2"); + String uniqId = (String) commandMap.get("uniqId"); + + boolean isCorrectPassword = false; + UserManageVO resultVO = new UserManageVO(); + userManageVO.setPassword(newPassword); +// userManageVO.setOldPassword(oldPassword); + userManageVO.setUniqId(uniqId); + + String resultMsg = ""; + resultVO = userManageService.selectPassword(userManageVO); + //패스워드 암호화 +// String encryptPass = EgovFileScrty.encryptPassword(oldPassword, userManageVO.getEmplyrId()); + + for (String authority : authorities) { //일반사용자까지 + if (authority.equals("ROLE_ADMIN") || authority.equals("ROLE_USER_MEMBER")) authFlag = true; + } + +// authFlag = false; //GS인증으로 이전비밀번호 체크 +// 이전 비밀번호 체크 하지 않고 비밀번호 변경되게 해달라는 요청으로 주석처리 220209 이준호 +// if (encryptPass.equals(resultVO.getPassword()) || authFlag) { + if (newPassword.equals(newPassword2)) { + isCorrectPassword = true; + } else { + isCorrectPassword = false; + resultMsg = "fail.user.passwordUpdate2"; + } +// } + /*else { + isCorrectPassword = false; + resultMsg = "fail.user.passwordUpdate1"; + }*/ + + if (isCorrectPassword) { + userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId())); + userManageService.updatePassword(userManageVO); + model.addAttribute("userManageVO", userManageVO); + resultMsg = "success.common.update"; + } else { + model.addAttribute("userManageVO", userManageVO); + } + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("message", egovMessageSource.getMessage(resultMsg)); + + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage(resultMsg)); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(""); + if(userSearchVO.getGnrlUser().equals("N")) { //관리자 비밀번호 변경시 + + /*RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl();*/ + /*LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) { + LoginVO tempUser = new LoginVO(); + tempUser.setId(userManageVO.getEmplyrId()); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId()); + return redirectUrlMaker.getRedirectUrl(); + }else { + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + }*/ + if(isCorrectPassword && authFlag == false) { + redirectUrlMaker = new RedirectUrlMaker("/uat/uia/actionLogout.do"); + + }else { + redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + + } + + } //사용자 비밀번호 변경시 +// RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); +// return redirectUrlMaker.getRedirectUrl(); + return redirectUrlMaker.getRedirectUrl(); + + } + + /** + * 업무사용자 암호 수정 화면 이동 + * @param model 화면모델 + * @param commandMap 파라메터전달용 commandMap + * @param userSearchVO 검색조건 + * @param userManageVO 사용자수정정보(비밀번호) + * @return cmm/uss/umt/EgovUserPasswordUpdt + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdtView.do") + public String updatePasswordView(ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, + @ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if(!"ROLE_ADMIN".equals(loginVO.getAuthority()) && !userManageVO.getUniqId().equals(loginVO.getUniqId())) { + /*return "/cmm/main/mainPage.do";*/ + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/cmm/main/mainPage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + if("".equals(userManageVO.getUniqId())){ + String sLocationUrl = "uss/umt/user/EgovUserManage.do"; + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(sLocationUrl); + return redirectUrlMaker.getRedirectUrl(); + } + + String userTyForPassword = (String) commandMap.get("userTyForPassword"); + userManageVO.setUserTy(userTyForPassword); + + List authorities = EgovUserDetailsHelper.getAuthorities(); + boolean authFlag = false; + + for (String authority : authorities) { + if (authority.equals("ROLE_ADMIN")) authFlag = true; + } + + model.addAttribute("userManageVO", userManageVO); + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("adminYn", authFlag); + return "cmm/uss/umt/EgovUserPasswordUpdt"; + } + + /** + * 회원가입설정관리 + * @return uss/umt/user/EgovMberConfigInsert + * @throws Exception + */ + @RequestMapping(value = {"/uss/umt/mber/EgovMberConfigInsert.do" , "/uss/umt/mber/EgovMberConfigInsertAjax.do"}) + public String selectMberConfigInsert( + @ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, + @ModelAttribute("mberManageVO") MberManageVO mberManageVO, + @RequestParam Map commandMap, + SiteManagerVO siteManagerVO, + HttpServletRequest request, + Model model , + HttpSession session) throws Exception { + MberManageConfigVO mberConfigVO = new MberManageConfigVO();//config 정보 가져오기 + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + if("super".equals(loginVO.getSiteId()) && null==mberManageVO.getSiteId()){ //수퍼 관리자이고 사이트 아이디 없을경우 kcc 으로 기본 세팅 + mberConfigVO.setSiteId("kcc"); + siteManagerVO.setSiteId("kcc"); + }else{ + if("".equals(mberManageVO.getSiteId()) || null==mberManageVO.getSiteId()){ + mberConfigVO.setSiteId(loginVO.getSiteId()); + siteManagerVO.setSiteId(loginVO.getSiteId()); + }else { + mberConfigVO.setSiteId(mberManageVO.getSiteId()); + siteManagerVO.setSiteId(mberManageVO.getSiteId()); + } + } + model.addAttribute("mberConfigVO", mberConfigVO); + List mberManageCnfVO = mberManageService.selectMberCnf(mberConfigVO); + model.addAttribute("mberManageCnfVO", mberManageCnfVO); + mberManageVO.setMberSttus("DEFAULT"); + SiteManagerVO joinSiteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;//자동가입 여부 조회 + model.addAttribute("joinSiteManagerVO", joinSiteManagerVO); + if("/uss/umt/mber/EgovMberConfigInsertAjax.do".equals(request.getServletPath())){ + return "cmm/uss/umt/EgovMberConfigInsertAjax"; + } + return "cmm/uss/umt/EgovMberConfigInsert"; + } + + /* 회원이름 업데이트*/ + @RequestMapping("/uss/umt/EgovMberNameUpdateAjax.do") + public ModelAndView updateMberNameUpdateAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + mberManageVO.setMberNm(egovCryptoUtil.encrypt(mberManageVO.getMberNm())); + mberManageService.updateMberNm(mberManageVO); + return modelAndView; + + //userSearchVO.setSnsSiteName(egovCryptoUtil.encrypt(userSearchVO.getSearchKeyword())); + } + + /* 회원가입 설정 업데이트*/ + @RequestMapping("/uss/umt/EgovMberConfigUpdateAjax.do") + public ModelAndView updateMberConfigUpdateAjax(@ModelAttribute("mberManageConfigVO") MberManageConfigVO mberManageConfigVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + mberManageService.updateMberCnf(mberManageConfigVO); + return modelAndView; + } + + /*자동가입 설정 업데이트*/ + @RequestMapping("/uss/umt/EgovMberJoinAutoUpdateAjax.do") + public ModelAndView EgovMberJoinAutoUpdateAjax(SiteManagerVO siteManagerVO) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + egovSiteManagerService.updateJoinAutoAjax(siteManagerVO); + return modelAndView; + } + + /** + * 일반회원가입신청 등록화면으로 이동한다. + * @param userSearchVO 검색조건 + * @param mberManageVO 일반회원가입신청정보 + * @param commandMap 파라메터전달용 commandMap + * @param model 화면모델 + * @return uss/umt/user/EgovUserRegister + * @throws Exception + */ + @RequestMapping("/uss/umt/mber/EgovMberRegister.do") + public String EgovMberRegister(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("mberManageVO") MberManageVO mberManageVO, + @RequestParam Map commandMap, Model model) throws Exception { + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + List passwordHint_result = cmmUseService.selectCmmCodeDetail(vo); + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + + model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록 + model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록 + if (!"".equals(commandMap.get("realname"))) { + model.addAttribute("mberNm", commandMap.get("realname")); //실명인증된 이름 - 주민번호 인증 + model.addAttribute("ihidnum", commandMap.get("ihidnum")); //실명인증된 주민등록번호 - 주민번호 인증 + } + if (!"".equals(commandMap.get("realName"))) { + model.addAttribute("mberNm", commandMap.get("realName")); //실명인증된 이름 - ipin인증 + } + + //이메일 코드 + vo.setCodeId("COM103"); + List emailCodeList = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("emailCodeList", emailCodeList); //이메일코드 + + //회원가입 config 정보 가져오기 + MberManageConfigVO voTemp = new MberManageConfigVO(); + //List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); + List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); + for (MberManageConfigVO configVO : mberManageCnfVO) { + model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송 + } + + model.addAttribute("mberManageCnfVO", mberManageCnfVO); + mberManageVO.setMberSttus("DEFAULT"); + + return "cmm/uss/umt/EgovMberRegister"; + } + + /** + * 모달조회 + * @return String + * @exception Exception + */ + @RequestMapping(value="/EgovModal.do") + public String EgovModal() throws Exception { + return "cmm/uss/umt/EgovModal"; + } + + /** + * 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인 + * @param commandMap 파라메터전달용 commandMap + * @param model 화면모델 + * @return uss/umt/EgovIdDplctCnfirm + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/user/EgovIdDplctCnfirmAjax.do") + public ModelAndView EgovIdDplctCnfirmAjax(@RequestParam Map commandMap) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String checkId = (String) commandMap.get("checkId"); + //checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8"); + + int usedCnt = userManageService.checkIdDplct(checkId); + modelAndView.addObject("usedCnt", usedCnt); + modelAndView.addObject("checkId", checkId); + + return modelAndView; + } + + /** + * 일반회원가입신청등록처리후로그인화면으로 이동한다. + * @param mberManageVO 일반회원가입신청정보 + * @return forward:/uss/umt/user/EgovUserExpInsert.do + * @throws Exception + */ + @RequestMapping("/uss/umt/user/EgovMberInsert.do") + public String EgovMberInsert( + @ModelAttribute("mberManageVO") MberManageVO mberManageVO, + BindingResult bindingResult, + Model model, + RedirectAttributes redirectAttributes) throws Exception { + if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) { + return "redirect:/uss/umt/user/EgovUserManage.do"; + } + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + /*if(!validationPasswd(mberManageVO.getPassword())){ + redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + }*/ + + beanValidator.validate(mberManageVO, bindingResult); + if (bindingResult.hasErrors()){ + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록 + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + //List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //소속기관코드를 코드정보로부터 조회 - COM025 + vo.setCodeId("COM025"); + model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo)); + + //조직정보를 조회 - ORGNZT_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo)); + + //그룹정보를 조회 - GROUP_ID정보 + vo.setTableNm("LETTNORGNZTINFO"); + model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo)); + //return "forward:/uss/umt/user/EgovUserInsertView.do"; + return "cmm/uss/umt/EgovUserInsert"; + }else{ + try{ + //userManageService.insertUser(userManageVO); + mberManageService.insertMber(mberManageVO); //일반사용자 등록 + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert")); + }catch(Exception e){ + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert")); + } + } + //관리자등록일 경우 + if(mberManageVO.getGnrlUser().equals("N")) { + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + //사용자 등록일 경우 + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do"); + return redirectUrlMaker.getRedirectUrl(); + } + + + /** + * 일반회원목록을 조회한다. (pageing) + * @param userSearchVO 검색조건정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovMberManage + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/mber/EgovMberList.do") + public String EgovMberList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, ModelMap model) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + if(userSearchVO.getPageUnit() != 10) { + userSearchVO.setPageUnit(userSearchVO.getPageUnit()); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); + paginationInfo.setPageSize(userSearchVO.getPageSize()); + + userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + model.addAttribute("resultList", mberManageService.selectMberList(userSearchVO)); + + int totCnt = mberManageService.selectMberListTotCnt(userSearchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + //일반회원 상태코드를 코드정보로부터 조회 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM013"); + model.addAttribute("entrprsMberSttus_result", cmmUseService.selectCmmCodeDetail(vo)); + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + SiteManagerVO siteManagerVO =new SiteManagerVO(); + siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; + model.addAttribute("siteManagerVO", siteManagerVO); + //return "cmm/uss/umt/EgovMberList"; + return "cmm/uss/umt/EgovGnrlUserManage"; + } + + /** + * 일반회원정보 수정을 위해 일반회원정보를 상세조회한다. + * @param mberId 상세조회대상 일반회원아이디 + * @param userSearchVO 검색조건 + * @param model 화면모델 + * @return uss/umt/EgovMberSelectUpdt + * @throws Exception + */ + @RequestMapping("/uss/umt/mber/EgovMberSelectUpdtView.do") + public String EgovMberSelectUpdtView(@RequestParam("selectedId") String uniqId, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (!isAuthenticated) { + return "index"; + } + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + //패스워드힌트목록을 코드정보로부터 조회 + vo.setCodeId("COM022"); + List passwordHint_result = cmmUseService.selectCmmCodeDetail(vo); + + //성별구분코드를 코드정보로부터 조회 + vo.setCodeId("COM014"); + List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo); + + //이메일 코드 + vo.setCodeId("COM103"); + List emailCodeList = cmmUseService.selectCmmCodeDetail(vo); + + //사용자상태코드를 코드정보로부터 조회 + vo.setCodeId("COM013"); + List mberSttus_result = cmmUseService.selectCmmCodeDetail(vo); + + //권한정보를 조회 - + //AuthorManageVO authorManageVO = new AuthorManageVO(); + //List authorManageList = egovAuthorManageService.selectAuthorUseAllList(authorManageVO); + + model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록 + model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록 + model.addAttribute("emailCodeList", emailCodeList); //이메일코드 + model.addAttribute("mberSttus_result", mberSttus_result); //사용자상태코드목록 + //model.addAttribute("authorManageList", authorManageList); //그룹정보 목록 + + //config 정보 가져오기 + MberManageConfigVO voTemp = new MberManageConfigVO(); + List mberManageCnfVO = mberManageService.selectMberCnf(voTemp); + for (MberManageConfigVO configVO : mberManageCnfVO) { + model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송 + } + MberManageVO mberManageVO = mberManageService.selectMber(uniqId); + + //생일/핸드폰번호/이메일 VO에서 자르기? + String birth = mberManageVO.getBirth(); + + if (!EgovStringUtil.isEmpty(birth)) { + mberManageVO.setBirthYear(birth.substring(0, 4)); + mberManageVO.setBirthMonth(birth.substring(4, 6)); + mberManageVO.setBirthDay(birth.substring(6, 8)); + } + + String moblphonNo = mberManageVO.getMoblphonNo(); + if (!EgovStringUtil.isEmpty(moblphonNo)) { + int subSize = 0; + if (moblphonNo.length() > 10) subSize = 7; + else subSize = 6; + + mberManageVO.setMoblphonNo1(moblphonNo.substring(0, 3)); + mberManageVO.setMoblphonNo2(moblphonNo.substring(3, subSize)); + mberManageVO.setMoblphonNo3(moblphonNo.substring(subSize, moblphonNo.length())); + } + + String mberEmailAdres = mberManageVO.getMberEmailAdres(); + if (!EgovStringUtil.isEmpty(mberEmailAdres)) { + String[] emailAdres = EgovStringUtil.split(mberEmailAdres, "@"); + mberManageVO.setEmail1(emailAdres[0]); + mberManageVO.setEmail2(emailAdres[1]); + } + + // 사진파일ID + mberManageVO.setAtchFileId(mberManageVO.getPhotofileId()); + //기존 권한 코드 + mberManageVO.setOrignlAuthorCode(mberManageVO.getAuthorCode()); + + model.addAttribute("mberManageVO", mberManageVO); + model.addAttribute("userSearchVO", userSearchVO); + + return "cmm/uss/umt/EgovMberSelectUpdtView"; + } + + /** + * 일반회원정보 수정후 목록조회 화면으로 이동한다. + * @param mberManageVO 일반회원수정정보 + * @param bindingResult 입력값검증용 bindingResult + * @param model 화면모델 + * @return forward:/uss/umt/EgovMberManage.do + * @throws Exception + */ + @RequestMapping("/uss/umt/mber/EgovMberSelectUpdt.do") + public String EgovMberSelectUpdt(@ModelAttribute("mberManageVO") MberManageVO mberManageVO, BindingResult bindingResult, Model model) throws Exception { + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (!isAuthenticated) { + return "forward:/uss/umt/mber/EgovMberList.do"; + } + + beanValidator.validate(mberManageVO, bindingResult); + if (bindingResult.hasErrors()) { + model.addAttribute("message", bindingResult.getAllErrors().get(0).getDefaultMessage()); + return "forward:/uss/umt/EgovMberManage.do"; + } else { + if (EgovStringUtil.isEmpty(mberManageVO.getGroupId())) { + mberManageVO.setGroupId(null); + } + + mberManageService.updateMber(mberManageVO); + //Exception 없이 진행시 수정성공메시지 + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + return "forward:/uss/umt/mber/EgovMberList.do"; + } + } + + /** + * 일반회원정보삭제후 목록조회 화면으로 이동한다. + * @param checkedIdForDel 삭제대상 아이디 정보 + * @param userSearchVO 검색조건정보 + * @param model 화면모델 + * @return forward:/uss/umt/EgovMberManage.do + * @throws Exception + */ + @RequestMapping("/uss/umt/mber/EgovMberDelete.do") + public String EgovMberDelete(final MultipartHttpServletRequest multiRequest, @RequestParam("checkedIdForDel") String checkedIdForDel, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception { + + if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey" , multiRequest)) { + return "redirect:/uss/umt/mber/EgovMberList.do"; + } + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + mberManageService.deleteMber(checkedIdForDel); + //Exception 없이 진행시 삭제성공메시지 + model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); + return "forward:/uss/umt/mber/EgovMberList.do"; + } + + private boolean validationPasswd(String pw){ + String pattern = "(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*()-+=])(?=\\S+$).{8,}"; + if(pw.matches(pattern)){ + return true; + } + return false; + } + + @RequestMapping(value = "/uss/umt/user/PassMissResetAjax.do") + public ModelAndView passMissResetAjax(@RequestParam Map commandMap, + LoginVO loginVO + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + loginService.updatePassMissReset(loginVO); + return modelAndView; + } + + //사용자 회원상태 변경 + @RequestMapping(value = "/uss/umt/user/updateEmplyrSttusCodeAjax.do") + public ModelAndView updateEmplyrSttusCodeAjax(@RequestParam Map commandMap, + LoginVO loginVO + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + loginService.updateEmplyrSttusCode(loginVO); + return modelAndView; + } + + /** + * + * (사용자) 차단 사용자목록을 조회한다. (pageing) + * @param userSearchVO 검색조건정보 + * @param model 화면모델 + * @return cmm/uss/umt/EgovUserManage + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/user/EgovBlockUserList.do") + public String selectBlockUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, + ModelMap model, + HttpSession session) throws Exception{ + + if(userSearchVO.getPageUnit() != 10) { + userSearchVO.setPageUnit(userSearchVO.getPageUnit()); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); + paginationInfo.setPageSize(userSearchVO.getPageSize()); + + userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ + userSearchVO.setSiteId(loginVO.getSiteId()); + } + + userSearchVO.setAdminYn("N"); + if(null==userSearchVO.getSearchCondition_01()){ //최초 페이지 로딩시 차단목록 조회 + userSearchVO.setEmplyrSttusCode("B"); + }else{ + userSearchVO.setEmplyrSttusCode(userSearchVO.getSearchCondition_01()); + } + + if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + userSearchVO.setSearchSortCnd("uniqId"); + userSearchVO.setSearchSortOrd("desc"); + } + List resultList = userManageService.selectUserList(userSearchVO); + model.addAttribute("resultList", resultList); + paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); + model.addAttribute("paginationInfo", paginationInfo); + + //사용자상태코드를 코드정보로부터 조회 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM013"); + model.addAttribute("emplyrSttusCodeList", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록 + + //권한조회 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setFirstIndex(0); + authorManageVO.setLastIndex(10); + authorManageVO.setRecordCountPerPage(10); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + return "cmm/uss/umt/EgovBlockUserList"; + } + + + /** + * rsa 공개키, 개인키 생성 + * + * @param request + */ + /*public void initRsa(HttpServletRequest request) { + HttpSession session = request.getSession(); + + KeyPairGenerator generator; + try { + generator = KeyPairGenerator.getInstance(EgovUserManageController.RSA_INSTANCE); + generator.initialize(1024); + + KeyPair keyPair = generator.genKeyPair(); + KeyFactory keyFactory = KeyFactory.getInstance(EgovUserManageController.RSA_INSTANCE); + PublicKey publicKey = keyPair.getPublic(); + PrivateKey privateKey = keyPair.getPrivate(); + + session.setAttribute(EgovUserManageController.RSA_WEB_KEY, privateKey); // session에 RSA 개인키를 세션에 저장 + + RSAPublicKeySpec publicSpec = (RSAPublicKeySpec) keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class); + String publicKeyModulus = publicSpec.getModulus().toString(16); + String publicKeyExponent = publicSpec.getPublicExponent().toString(16); + + request.setAttribute("RSAModulus", publicKeyModulus); // rsa modulus 를 request 에 추가 + request.setAttribute("RSAExponent", publicKeyExponent); // rsa exponent 를 request 에 추가 + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }*/ + + /** + * 복호화 + * + * @param privateKey + * @param securedValue + * @return + * @throws Exception + */ + /*private String decryptRsa(PrivateKey privateKey, String securedValue) throws Exception { + Cipher cipher = Cipher.getInstance(EgovUserManageController.RSA_INSTANCE); + byte[] encryptedBytes = hexToByteArray(securedValue); + cipher.init(Cipher.DECRYPT_MODE, privateKey); + byte[] decryptedBytes = cipher.doFinal(encryptedBytes); + String decryptedValue = new String(decryptedBytes, "utf-8"); // 문자 인코딩 주의. + return decryptedValue; + }*/ + + /** + * 16진 문자열을 byte 배열로 변환한다. + * + * @param hex + * @return + */ + public static byte[] hexToByteArray(String hex) { + if (hex == null || hex.length() % 2 != 0) { return new byte[] {}; } + + byte[] bytes = new byte[hex.length() / 2]; + for (int i = 0; i < hex.length(); i += 2) { + byte value = (byte) Integer.parseInt(hex.substring(i, i + 2), 16); + bytes[(int) Math.floor(i / 2)] = value; + } + return bytes; + } + + /* 회원가입 설정 업데이트*/ + @RequestMapping("/uss/umt/user/EgovBlockUserUpdateAjax.do") + public ModelAndView selectBlockUserAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + UserManageVO inertUserManageVO = new UserManageVO(); + //mberManageService.updateMberCnf(mberManageConfigVO); + try { + for(int i=0 ; i< userManageVO.getEsntlIdNsttusCode().length ; i++) { + inertUserManageVO.setEsntlId(userManageVO.getEsntlIdNsttusCode()[i].split(":")[0]); + inertUserManageVO.setEmplyrSttusCode(userManageVO.getEsntlIdNsttusCode()[i].split(":")[1]); + userManageService.updateUserSttusCode(inertUserManageVO); + } + + modelAndView.addObject("result", "success"); + }catch (Exception e) { + modelAndView.addObject("result", "fail"); + } + return modelAndView; + } + + /** + * 개인정보보호 비밀번호 체크 + * @param commandMap 파라메터전달용 commandMap + * @param model 화면모델 + * @return uss/umt/EgovIdDplctCnfirm + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/user/CheckInfoProtectAjax.do") + public ModelAndView CheckInfoProtectAjax(@RequestParam Map commandMap + ,UserManageVO userManageVO + ,HttpSession session + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + UserManageVO returnUserManageVO = new UserManageVO(); + userManageVO.setUniqId(userManageVO.getEsntlId()); + returnUserManageVO = userManageService.selectPassword(userManageVO) ; + if(null==returnUserManageVO) { //UserManageVO + modelAndView.addObject("usedCnt", 0); + }else { + String returnPassword = returnUserManageVO.getPassword() ; + //패스워드 암호화 + String encryptPass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId()); + if(returnPassword.equals(encryptPass)) { + modelAndView.addObject("usedCnt", 1); + //세션으로 인증넣어줌 + session.setAttribute("info_pro_session", true); + }else { + modelAndView.addObject("usedCnt", 0); + } + } + return modelAndView; + } + + /** + * 개인정보보호 하단 include + * @param commandMap 파라메터전달용 commandMap + * @param model 화면모델 + * @return uss/umt/EgovIdDplctCnfirm + * @throws Exception + */ + @RequestMapping(value = "/uss/umt/IncInfoProtect.do") + public String IncInfoProtect(ModelMap model, + HttpSession session) throws Exception{ + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + SiteManagerVO siteManagerVO =new SiteManagerVO(); + siteManagerVO.setSiteId(loginVO.getSiteId()); //자신이 속한 사이트 아이디 + siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ; + model.addAttribute("siteManagerVO", siteManagerVO); + return "cmm/uss/umt/IncInfoProtect"; + } + + //리스트 엑셀 다운로드 + @RequestMapping(value="/uss/umt/user/userExcelDownload.do") + public void userExcelDownload(UserDefaultVO userSearchVO, + HttpServletRequest request, + HttpServletResponse response , + ModelMap model) throws Exception { + + userSearchVO.setRecordCountPerPage(100000); + userSearchVO.setFirstIndex(0); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ + userSearchVO.setSiteId(loginVO.getSiteId()); + } + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + SXSSFWorkbook wb = new SXSSFWorkbook(100); + CellStyle style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold + + Cell cell = null; + Row row = null; + + String fileName ="관리자 리스트"; + if("Y".equals(userSearchVO.getGnrlUser())) fileName = "사용자 리스트" ; + + String sheetTitle = ""; + try{ + List userSearchList = userManageService.selectUserList(userSearchVO) ; + { //화면 리스트 + sheetTitle = "관리자 리스트(화면)" ; //제목 + if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(화면)" ; + Sheet sheet = wb.createSheet(sheetTitle); + row = sheet.createRow(0); + for(int i=0 ; i < userExcelValue.length ; i++) { + cell = row.createCell(i); + cell.setCellStyle(style); + cell.setCellValue(userExcelValue[i][1]); + } + + for(int i=0; i < userSearchList.size(); i++){ + row = sheet.createRow(i+1); + for(int j=0 ; j < userExcelValue.length ; j++) { + cell = row.createCell(j); + cell.setCellStyle(style); + if(j==0) cell.setCellValue(i+1); //번호 + if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteIdTxt")); //사이트명 + if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디 + if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명 + if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCodeTxt")); //권한 + if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호 + if(j==6) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일 + if(j==7) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("sbscrbDe")); //등록일 + } + } + } + { //DB리스트 + sheetTitle = "관리자 리스트(DB)" ; //제목 + if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(DB)" ; + Sheet sheet = wb.createSheet(sheetTitle); + row = sheet.createRow(0); + for(int i=0 ; i < userExcelValue.length-2 ; i++){ //아이디,등록일자 없어 -2 + cell = row.createCell(i); + cell.setCellStyle(style); + if(i==0) { + cell.setCellValue( "Y".equals(userSearchVO.getGnrlUser()) ? "사용자 아이디" : "관리자 아이디" ); + }else if(i==1){ + if(!"".equals(userExcelValue[i][3])){ + cell.setCellValue(userExcelValue[i][1]+"\n"+userExcelValue[i][3]); + }else { + cell.setCellValue(userExcelValue[i][1]); + } + }else{ //3번제 컬럼 부터 하나씩 앞으로 세팅 + if(!"".equals(userExcelValue[i+1][3])){ + cell.setCellValue(userExcelValue[i+1][1]+"\n"+userExcelValue[i+1][3]); + }else { + cell.setCellValue(userExcelValue[i+1][1]); + } + } + } + + for(int i=0; i < userSearchList.size(); i++){ + row = sheet.createRow(i+1); + /*for(int j=0 ; j < userExcelValue.length-1 ; j++) {*/ + for(int j=0 ; j < userExcelValue.length-2 ; j++) {//아이디 없어 -1 + cell = row.createCell(j); + cell.setCellStyle(style); + if(j==0) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디 + if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteId")); //사이트명 + if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명 + if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCode")); //권한 + if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호 + if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일 + } + } + + } + response.setHeader("Set-Cookie", "fileDownload=true; path=/"); + SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA ); + Date currentTime = new Date (); + String mTime = mSimpleDateFormat.format ( currentTime ); + fileName = fileName+"("+mTime+")"; + + response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx")); + wb.write(response.getOutputStream()); + + }catch(Exception e) { + response.setHeader("Set-Cookie", "fileDownload=false; path=/"); + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Content-Type","text/html; charset=utf-8"); + OutputStream out = null; + try { + out = response.getOutputStream(); + byte[] data = new String("fail..").getBytes(); + out.write(data, 0, data.length); + } catch(Exception ignore) { + System.out.println("Exception Occured!!!"); + } finally { + if(out != null) try { out.close(); } catch(Exception ignore) {System.out.println("Exception Occured!!!");} + } + }finally { + // 디스크 적었던 임시파일을 제거합니다. + wb.dispose(); + try { wb.close(); } catch(Exception ignore) {System.out.println("Exception Occured!!!");} + } + } + + //자동완성 데이터 가져오기 + @RequestMapping(value = "/uat/uia/RecentSearchShowAjax.do", method = RequestMethod.GET, produces="text/plain;charset=UTF-8") + @ResponseBody + public String recentSearchShowAjax(Locale locale, + UserManageVO userManageVO, + Model model, + HttpSession session) throws Exception { + //DB부하로 로그인시 session 의 최근 검색어를 가져옴. + Gson gson = new Gson(); + return gson.toJson(session.getAttribute("recentSearch")); + } + + /** + * 검색 버튼 클릭시 최근검색어 등록 + */ + @RequestMapping("/uat/uia/RecentSearchUpdateAjax.do") + public ModelAndView RecentSearchUpdateAjax(UserManageVO userManageVO, + HttpSession session + ) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + if(null != session.getAttribute("loginId")) { //로그인시 + if(null != session.getAttribute("recentSearch")){ //세션이 없으면(로그인 안함) DB조회 + List arrRecentSearch = (List)session.getAttribute("recentSearch") ; + arrRecentSearch.add(0 , userManageVO.getSearchWord()); //맨앞 추가; + + //사이트별 갯수 세팅 + List siteManageList = (List)session.getAttribute("siteManageList") ; + for(SiteManagerVO siteManagerVO : siteManageList) { + if(siteManagerVO.getSiteId().equals((String)session.getAttribute("siteId"))){ + //RECENT_SEARCH_CD` char(1) DEFAULT 'N' COMMENT '최근검색어 관리코드(N:사용안함,5:5개,9:10개)' + if("N".equals(siteManagerVO.getRecentSearchCd())){ //사용안함 + arrRecentSearch = arrRecentSearch.subList(0 ,0) ; + }else if("5".equals(siteManagerVO.getRecentSearchCd())){ + if(arrRecentSearch.size() > 5) { + arrRecentSearch = arrRecentSearch.subList(0 ,5) ; + }else { + arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ; + } + }else{ //9면 10개까지 + if(arrRecentSearch.size() > 10) { + arrRecentSearch = arrRecentSearch.subList(0 , 10) ; + }else { + arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ; + } + } + break; + } + } + + //중복값 제거 + ArrayList arrList = new ArrayList(); + HashSet hs = new HashSet(arrRecentSearch); + Iterator it = hs.iterator(); + String tempStr = ""; + while(it.hasNext()){ + tempStr = (String)it.next(); + if(!"".equals(tempStr)) { + arrList.add(tempStr) ; + } + tempStr = ""; + } + arrRecentSearch = arrList ; + + //추가된 값을 세션에 넣는다. + session.setAttribute("recentSearch", arrRecentSearch) ; + //String 변환 및 DB 업데이트 + userManageVO.setEmplyrId((String)session.getAttribute("loginId")); + userManageVO.setSearchWord(String.join(",", arrRecentSearch)); + userManageService.insertUpdateSearchWord(userManageVO); + }else{ + + } + } + + /*egovSiteManagerService.updateAdminLogKpCd(siteManagerVO); + modelAndView.addObject("siteManagerVO", siteManagerVO);*/ + return modelAndView; + } + + + + @RequestMapping("/getUrlAjax.do") + public ModelAndView getUrlAjax(UserManageVO userManageVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + StringBuffer sbuf = new StringBuffer(); + StringBuffer result = new StringBuffer(); + try { + // URL 객체 생성 + String strurlOri = "https://www.warmemo.or.kr/front/militaryInfo/searchView.do?idx=" ; + + String strurl = ""; + for(int i = 2073 ; i <= 2430 ; i++) { + strurl = strurlOri+i; + URL url = new URL(strurl); + // URLConnection 생성 + URLConnection urlConn = url.openConnection(); + InputStream is = urlConn.getInputStream(); + InputStreamReader isr = new InputStreamReader(is, "UTF-8"); + BufferedReader br = new BufferedReader(isr); + String str ; + int line = 0; + while((str=br.readLine()) != null){ + + sbuf.append(str + "\r\n") ; + if(line != 0) { + line++; + } + if(str.contains("
")) { + line ++; + } + + if(line == 3) { + result.append(strurl +"," + str.trim()+"," ); + } + + if(str.contains("유형 :")) { + result.append(str.split(":")[1].trim()+"\n"); + } + } + + } + + } catch (MalformedURLException e) { + System.out.println("MalformedURLException Occured!!!"); + } catch (IOException e) { + System.out.println("IOException Occured!!!"); + } + + return modelAndView; + } + } \ No newline at end of file diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java index 30fdfddf..a2f878c3 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java @@ -749,6 +749,12 @@ public class CndtnTrgtMngController { comDefaultSexCodeVO.setCodeDc(cndtnTrgtMngVO.getSex()); cndtnTrgtMngVO.setSex( egovCmmUseService.selectCmmCodeDetailCode(comDefaultSexCodeVO) ); + // 관할청 + ComDefaultCodeVO comDefaultCmptntCodeVO = new ComDefaultCodeVO(); + comDefaultCmptntCodeVO.setCodeId("VEA008"); + comDefaultCmptntCodeVO.setCodeDc(cndtnTrgtMngVO.getCmptntAthrt()); + cndtnTrgtMngVO.setCmptntAthrt( egovCmmUseService.selectCmmCodeDetailCode(comDefaultCmptntCodeVO) ); + //암호화 cndtnTrgtMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtMngVO); diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserInsert.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserInsert.jsp index 3783ba94..f76c44db 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserInsert.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserInsert.jsp @@ -1,533 +1,550 @@ -<%-- - Class Name : EgovUserInsert.jsp - Description : 사용자등록View JSP - Modification Information - - 수정일 수정자 수정내용 - ------- -------- --------------------------- - 2009.03.03 JJY 최초 생성 - 2011.08.31 JJY 경량환경 버전 생성 - - author : 공통서비스 개발팀 JJY - since : 2009.03.03 ---%> -<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> -<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> -<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> -<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> - - - - - - - - - - - - - - - - - - -
-
- - -
-

관리자등록

- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- --%> - - - <%-- - - --%> - - - - - - - - - - - - - - - - - - - - - -
사이트명 - -
관리자아이디 - - - - - - -
비밀번호 - - -
- - 비밀번호 문자 + 숫자 + 특수 문자 포함, 최소 8~20자리 - -
비밀번호확인 - -
이름 - - -
권한 - -
직책 - - - - - -
부서 - -
전화번호 - - -
팩스번호 - - -
담당업무 - - -
이메일주소 - - -
-
- - - -
-
- -
-
- -
-
- -
-
-
- -
- - - - - - - - -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - +<%-- + Class Name : EgovUserInsert.jsp + Description : 사용자등록View JSP + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2009.03.03 JJY 최초 생성 + 2011.08.31 JJY 경량환경 버전 생성 + + author : 공통서비스 개발팀 JJY + since : 2009.03.03 +--%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> + + + + + + + + + + + + + + + + + + +
+
+ + +
+

관리자등록

+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + <%-- + + --%> + + + + + + + + + + + + + + + + + + + + + +
사이트명 + +
관리자아이디 + + + + + + +
비밀번호 + + +
+ + 비밀번호 문자 + 숫자 + 특수 문자 포함, 최소 8~20자리 + +
비밀번호확인 + +
이름 + + +
권한 + +
직책 + + + + + +
부서 + +
전화번호 + + +
팩스번호 + + +
담당업무 +
+ + +
+
+ +
+
이메일주소 + + +
+
+ + + +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserSelectUpdt.jsp index 6be55335..4eef932e 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovUserSelectUpdt.jsp @@ -18,6 +18,7 @@ <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> <%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> @@ -73,6 +74,14 @@ $( document ).ready(function(){ $("#rank1").attr('disabled', true); $("#rank2").attr('disabled', false); } + + if("${userManageVO.authorCode}" == "ROLE_ADR_JRSDC"){ + $('#userWork_case1').hide(); + $('#userWork_case2').show(); + }else{ + $('#userWork_case1').show(); + $('#userWork_case2').hide(); + } }); function setOrgDepth_01(){ @@ -324,6 +333,17 @@ function authorChange(obj) { $("#rank1").attr('disabled', true); $("#rank2").attr('disabled', false); } + + //alert(obj.options[obj.selectedIndex].value); + + if (obj.options[obj.selectedIndex].value=='ROLE_ADR_JRSDC'){ + $('#userWork_case1').hide(); + $('#userWork_case2').show(); + }else{ + $('#userWork_case1').show(); + $('#userWork_case2').hide(); + } + } @@ -440,8 +460,14 @@ function authorChange(obj) { 담당업무 - - +
+ + +
+
+ +
+ diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.jsp index 4003b2a1..eec7a080 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.jsp @@ -887,7 +887,7 @@ - 명 +

필수입력 항목*

@@ -922,7 +922,7 @@ - +