====== 사용자관리 ======
===== 개요 =====
사용자관리는 사용자목록 조회기능과 신규등록기능, 상세조회기능, 사용자정보수정기능, 사용자암호수정기능, 사용자정보삭제기능을 제공한다.
* 기능흐름
^기능명^기능 흐름^
|사용자 등록 및 시스템 사용|①관리자에 의한 사용자 등록 -> ②사용자 아이디 또는 인증서를 통한 시스템 로그인|
{{:egovframework:com:cmm:uss:umt:u05.업무사용자흐름도.gif|}}
===== 설명 =====
==== 패키지 참조 관계 ====
사용자, 기업회원, 회원 패키지는 요소기술의 공통 패키지(cmm)와 시스템(sim) 패키지에 대해서 직접적인 함수적 참조 관계를 가진다. 하지만, 컴포넌트 배포 시 오류 없이 실행되기 위하여 패키지 간의 참조관계에 따라 포맷/날짜/계산, 실명확인, 우편번호 패키지와 함께 배포 파일을 구성한다.
* 패키지 간 참조 관계 : [[egovframework:com:v2:init_pkg_dependency#사용자지원|사용자지원 Package Dependency]]
==== 관련소스 ====
^유형^대상소스명^비고^
|Controller |egovframework.com.uss.umt.web.EgovUserManageController.java |사용자 관리를 위한 컨트롤러 클래스 |
|Service |egovframework.com.uss.umt.service.EgovUserManageService.java |사용자 관리를 위한 서비스 인터페이스 |
|ServiceImpl |egovframework.com.uss.umt.service.impl.EgovUserManageServiceImpl.java|사용자 관리를 위한 서비스 구현 클래스 |
|VO |egovframework.com.uss.umt.service.UserManageVO.java |사용자 관리를 위한 모델 클래스 |
|VO |egovframework.com.uss.umt.service.UserDefaultVO.java |사용자 관리를 위한 검색조건용 VO 클래스 |
|DAO |egovframework.com.uss.umt.service.impl.UserManageDAO.java |사용자 관리를 위한 데이터처리 클래스 |
|JSP |/WEB-INF/jsp/egovframework/com/uss/umt/EgovUserInsert.jsp |사용자 등록을 위한 jsp페이지 |
|JSP |/WEB-INF/jsp/egovframework/com/uss/umt/EgovUserSelectUpdt.jsp |사용자 상세조회 및 수정을 위한 jsp페이지 |
|JSP |/WEB-INF/jsp/egovframework/com/uss/umt/EgovUserPasswordUpdt.jsp |사용자 암호수정을 위한 jsp페이지 |
|JSP |/WEB-INF/jsp/egovframework/com/uss/umt/EgovUserManage.jsp |사용자 목록조회를 위한 jsp페이지 |
|JSP |/WEB-INF/jsp/egovframework/com/uss/umt/EgovIdDplctCnfirm.jsp |중복아이디 확인을 위한 jsp페이지 |
|JSP |/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiRegist.jsp |GPKI인증서 DN값 추출을 위한 jsp페이지 |
|Query XML |resources/egovframework/sqlmap/com/uss/umt/EgovUserManage_SQL_Mysql.xml |사용자 관리를 위한 MySQL용 쿼리문 설정파일 |
|Query XML |resources/egovframework/sqlmap/com/uss/umt/EgovUserManage_SQL_Oracle.xml |사용자 관리를 위한 Oracle용 쿼리문 설정파일 |
|Query XML |resources/egovframework/sqlmap/com/uss/umt/EgovUserManage_SQL_Tibero.xml |사용자 관리를 위한 Tibero용 쿼리문 설정파일 |
|Query XML |resources/egovframework/sqlmap/com/uss/umt/EgovUserManage_SQL_Altibase.xml |사용자 관리를 위한 Altibase용 쿼리문 설정파일 |
|Validator Rule XML|resources/egovframework/validator/validator-rules.xml|Validator Rule을 정의한 XML|
|Validator XML|resources/egovframework/validator/com/uss/umt/EgovUserManage.xml |사용자 관리를 위한 vailidator룰 설정파일 |
|Idgen XML|resources/egovframework/spring/com/context-idgen.xml |사용자 관리 Id생성 Idgen XML|
==== 클래스 다이어그램 ====
{{:egovframework:com:v2:uss:사용자관리_클래스다이어그램.jpg?740|}}
==== ID Generation ====
=== ID Generation 관련 DDL 및 DML ===
* ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **USRCNFRM_ID** 항목을 추가해야 한다. \\
테이블이 생성되어 있는 경우라면 INSERT 구문만을 수행한다.(본시스템의 기능 중에서 회원, 기업회원관리에서도 USRCNFRM_ID항목을 사용하여 고유아이디를 생성한다.)
CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL,
next_id DECIMAL(30) NOT NULL,
PRIMARY KEY (table_name));
INSERT INTO COMTECOPSEQ VALUES('USRCNFRM_ID','0');
=== ID Generation 환경설정(context-idgen.xml) ===
==== 관련테이블 ====
^테이블명^테이블명(영문)^비고^
|사용자정보|COMTNEMPLYRINFO|사용자 정보를 관리한다.|
==== 관련코드 ====
사용자관리에서 사용되는 코드 및 그에 따른 설정 값의 반영사항은 다음과 같다.
^코드분류^코드분류명 ^코드ID ^코드명 ^설정반영사항^
|COM012|사용자유형 |USR01 |일반회원 |일반회원 유형 |
| |사용자유형 |USR02 |기업회원 |기업회원 유형 |
| |사용자유형 |USR03 |사용자|사용자유형 |
|COM013|사용자상태 |A |가입신청 |회원가입신청상태 |
| |사용자상태 |P |가입승인 |회원가입승인상태 |
| |사용자상태 |D |가입삭제 |회원가입삭제상태 |
|COM014|성별구분 |F |여자 |여자 |
| |성별구분 |M |남자 |남자 |
|COM022|패스워드힌트|동적으로생성함 |힌트 |패스워드힌트 |
|COM025|소속기관코드|동적으로생성함 |소속기관 |소속기관정보 |
|우편번호코드|COMTCZIP 테이블에 등록된 우편번호정보 |||우편번호|
|권한그룹코드|COMTNAUTHORGROUPINFO 테이블에 동적으로 생성된 권한그룹레코드정보 |||사용자별 권한그룹|
|조직정보|COMTNORGNZTINFO 테이블에 동적으로 생성된 조직(부서)정보 |||사용자별 조직(부서)정보|
===== 관련기능 =====
사용자관리는 크게 **사용자 목록조회**, **사용자 등록**, **사용자 상세조회(수정)**, **사용자 암호변경** 기능으로 분류된다.
==== 사용자 목록조회 ====
=== 비즈니스 규칙 ===
검색조건은 사용자상태조건, 사용자아이디, 사용자명에 대해서 수행된다. 검색조건으로 사용자아이디를 사용하는 경우는 EQUAL검색(동일한 아이디인 경우를 검색), 사용자명을 사용하는 경우는 LIKE(근접한 사용자명인 경우를 검색)검색을 수행한다. \\
=== 관련코드 ===
N/A
=== 관련화면 및 수행 매뉴얼 ===
^Action^URL^Controller method^QueryID^
|목록조회 |/uss/umt/EgovUserManage.do |selectUserList |"userManageDAO.selectUserList_S",|
| | | |"userManageDAO.selectUserListTotCnt_S"|
|삭제 |/uss/umt/EgovUserDelete.do |deleteUser |"userManageDAO.deleteUser_S"|
사용자목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.\\
페이지 당 검색 범위를 변경하고자 하는 경우 context-properties.xml 파일의 pageUnit, pageSize를 변경한다.(단 해당 설정은 전체 공통서비스 기능에 영향을 미친다.)\\
{{:egovframework:com:cmm:uss:umt:u01.업무사용자목록.gif?740|}}
검색 : 사용자 목록을 검색조건을 지정하여 조회하기 위해서는 검색조건을 설정한 후 상단의 검색 버튼을 통해서 해당되는 사용자를 검색한다.\\
삭제 : 기존 사용자를 삭제하고자 하는 경우는 사용자 상태정보를 가입승인탈퇴로 변경하여 처리한다. 특수한 경우 완전삭제가 필요한 경우는 체크박스를 선택한후 상단의 삭제버튼을 통해서 Database상에서 삭제할 수 있다.(단, 삭제시는 해당사용자와 관련된 설정정보들이 우선 삭제되어야 한다)\\
목록 : 사용자 전체목록을 조회한다.\\
등록 : 신규 사용자를 등록하기 위해서는 상단의 등록버튼을 통해서 **사용자 등록** 화면으로 이동한다.\\
상세조회(수정) : 기존 사용자의 등록정보를 수정하고자 하는 경우는 해당 아이디를 클릭하여 상세 조회 및 수정기능을 제공하는 **사용자 상세조회(수정)** 화면으로 이동한다.\\
==== 사용자 등록 ====
=== 비즈니스 규칙 ===
사용자 정보를 입력하여 신규등록한다. 등록이 성공적으로 종료되면 **사용자 목록조회** 화면으로 이동한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행 매뉴얼 ===
^Action^URL^Controller method^QueryID^
|등록 |/uss/umt/EgovUserInsert.do |insertUser |"userManageDAO.insertUser_S"|
{{:egovframework:com:cmm:uss:umt:u02.업무사용자등록.gif?740|}}
등록 : 신규 사용자 정보를 입력한후 하단의 등록버튼을 통해서 Database상에 신규 사용자 정보를 저장한다. 입력항목 중에서 필수항목(*표시)은 모두 입력해야 하며 사용자 아이디와 우편번호(주소)는 팝업화면을 호출하여 선택한다.\\
목록 : 사용자 목록조회화면으로 다시 이동하기 위해서는 하단의 목록버튼을 통해서 **사용자 목록조회** 화면으로 이동한다.\\
취소 : 신규 사용자 정보의 입력도중 입력된 내용을 초기화하기 위해서는 하단의 취소 버튼을 통해서 입력내용을 최초 상태로 클리어한다.\\
==== 사용자 상세조회(수정) =====
=== 비즈니스 규칙 ===
사용자 목록의 상세조회 및 수정 기능을 제공한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행 매뉴얼 ===
^Action^URL^Controller method^QueryID^
|상세조회 |/uss/umt/EgovUserSelectUpdtView.do |updateUserView|"userManageDAO.selectUser_S"|
|수정 |/uss/umt/EgovUserSelectUpdt.do |updateUser |"userManageDAO.updateUser_S"|
|삭제 |/uss/umt/EgovUserDelete.do |deleteUser |"userManageDAO.deleteUser_S"|
{{:egovframework:com:cmm:uss:umt:u03.업무사용자상세조회_수정.gif?740|}}
수정 : 기존 사용자 정보를 수정입력한후 하단의 수정버튼을 통해서 Database상에 수정된 사용자 정보를 저장한다. 입력항목 중에서 필수항목(*표시)은 모두 입력된 상태여야 하며 사용자 아이디는 변경할 수 없다. 우편번호(주소)를 변경하는 경우 팝업화면을 호출하여 선택한다.\\
삭제 : 기존 사용자를 삭제하고자 하는 경우는 사용자 상태정보를 가입승인탈퇴로 변경하여 처리한다. 특수한 경우 완전삭제가 필요한 경우는 하단의 삭제버튼을 통해서 Database상에서 삭제할 수 있다.(단, 삭제시는 해당사용자와 관련된 설정정보들이 우선 삭제되어야 한다)\\
목록 : 사용자 목록조회화면으로 다시 이동하기 위해서는 하단의 목록버튼을 통해서 **사용자 목록조회** 화면으로 이동한다.\\
암호변경 : 사용자 암보변경화면으로 이동하기 위해서는 하단의 암호변경버튼을 통해서 **사용자 암호변경** 화면으로 이동한다.\\
취소 : 기존 사용자 정보의 수정입력도중 입력된 내용을 수정하기 전상태로 초기화하기 위해서는 하단의 취소 버튼을 통해서 상세정보를 최초 상태로 복원한다.\\
==== 사용자 암호변경 ====
=== 비즈니스 규칙 ===
사용자의 비밀번호를 수정한다. 수정이 성공적으로 종료되면 요청에 대한 처리결과를 화면상에 메시지로 출력한다.
=== 관련코드 ===
N/A
=== 관련화면 및 수행 매뉴얼 ===
^Action^URL^Controller method^QueryID^
|암호수정 |/uss/umt/EgovUserPasswordUpdt.do |updatePassword|"userManageDAO.updatePassword_S"|
| | | |"userManageDAO.selectPassword_S"|
{{:egovframework:com:cmm:uss:umt:u04.사용자암호수정.gif?740|}}
수정 : 기존의 비밀번호와 수정할 암호, 수정할 암호 확인을 입력한 후 하단의 수정버튼을 통해서 Database상에 수정된 비밀번호 정보를 저장한다. 기존의 비밀번호가 틀린경우는 수정되지 않는다. \\
목록 : 사용자 목록조회화면으로 다시 이동하기 위해서는 하단의 목록버튼을 통해서 **사용자 목록조회** 화면으로 이동한다.\\
취소 : 비밀번호 수정입력도중 입력했던 내용을 초기화하기 위해서는 하단의 취소 버튼을 통해서 최초 상태로 클리어한다.\\