Merge remote-tracking branch 'origin/master'

This commit is contained in:
KNKIM 2021-09-15 09:22:48 +09:00
commit ed8363569d
19 changed files with 366 additions and 426 deletions

View File

@ -24,7 +24,7 @@ public class EmailSender {
helper.setText(email.getContent(), true); //***HTML 적용
helper.setTo(email.getReciver());
helper.setSubject(email.getSubject());
helper.setFrom("siasia0824@gmail.com","한국문화원연합회");
helper.setFrom("teachteam02@gmail.com","한국문화원연합회");
/* msg.setSubject(email.getSubject());
msg.setText(email.getContent(),"text/html");

View File

@ -57,10 +57,6 @@ public interface MemberService
public List<NlibLoginVO> selectAlreadySignUpMobile(NlibLoginVO loginVO) throws Exception;
public void insertMemberSite(MemberSiteVO msVO);
public int selectMemberSiteCount(MemberSiteVO msVO);
public int selectSnsIdCount(OAuthUniversalUser oauthUser);
public void deleteMembership(NlibLoginVO loginVO) throws Exception;;

View File

@ -1,101 +0,0 @@
package nlib.user.service;
import java.io.Serializable;
import java.util.Base64;
import nlib.cmm.NlibCommonController;
import nlib.util.StringUtil;
/**
* <pre>
* @Class Name : MemberSiteVO.java
*
* @Description : 가입문화원정보
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 9. 02. JSYOO 최초 생성
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 12.
* @version 1.0
*
*/
public class MemberSiteVO implements Serializable {
private static final long serialVersionUID = -8274004534207618049L;
/* MB_SITE : 가입문화원 정보 */
private String mbSiteId; /* 회원인덱스 */
private String mbInfoId; /* 회원아이디 (ex: M1000000001) */
private String joinType; /* 가입유형 SNS 및 로그인을 연계하는 포털시스템 아이디(naver, daum 등) */
private String joinAgreeDd; /* 가입동의일자 */
private String joinCouncilCd; /* 가입문화원코드 */
private String joinCouncilNm; /* 가입문화원명 */
private String masterYn; /* 대표여부 */
private String ipNotUse; /* 접속아이피 */
private String lastAccessDdNotUse; /* 마지막접근일자 */
//----------------------------------------------------------------
// SETTER.GETTER
//----------------------------------------------------------------
public String getMbSiteId() {
return mbSiteId;
}
public void setMbSiteId(String mbSiteId) {
this.mbSiteId = mbSiteId;
}
public String getMbInfoId() {
return mbInfoId;
}
public void setMbInfoId(String mbInfoId) {
this.mbInfoId = mbInfoId;
}
public String getJoinType() {
return joinType;
}
public void setJoinType(String joinType) {
this.joinType = joinType;
}
public String getJoinAgreeDd() {
return joinAgreeDd;
}
public void setJoinAgreeDd(String joinAgreeDd) {
this.joinAgreeDd = joinAgreeDd;
}
public String getJoinCouncilCd() {
return joinCouncilCd;
}
public void setJoinCouncilCd(String joinCouncilCd) {
this.joinCouncilCd = joinCouncilCd;
}
public String getMasterYn() {
return masterYn;
}
public void setMasterYn(String masterYn) {
this.masterYn = masterYn;
}
public String getIpNotUse() {
return ipNotUse;
}
public void setIpNotUse(String ipNotUse) {
this.ipNotUse = ipNotUse;
}
public String getLastAccessDdNotUse() {
return lastAccessDdNotUse;
}
public void setLastAccessDdNotUse(String lastAccessDdNotUse) {
this.lastAccessDdNotUse = lastAccessDdNotUse;
}
public String getJoinCouncilNm() {
return joinCouncilNm;
}
public void setJoinCouncilNm(String joinCouncilNm) {
this.joinCouncilNm = joinCouncilNm;
}
}

View File

@ -41,8 +41,6 @@ public class NlibLoginVO implements Serializable {
private String mobileNo; /* 휴대전화번호 */
private String password; /* 비밀번호 */
private String email; /* 이메일 */
private String emailVrfctNo = null; /* 이메일 인증번호 */
private String emailVrfctDd = null; /* 이메일 인증번호 발송일자 */
private String gender; /* 성별(M:남자,F:여자) */
private String zipCode; /* 우편번호 */
private String address; /* 주소 */
@ -75,6 +73,11 @@ public class NlibLoginVO implements Serializable {
private String error = null; /* 처리 오류코드 */
private String message = null; /* 처리 관련 메시지 */
private String emailTemp = ""; /* 이메일 수정시 임시저장 변수 */
private String emailVrfctNo = null; /* 이메일 인증번호 */
private String emailVrfctDd = null; /* 이메일 인증번호 발송일자 */
private String mobileTemp = ""; /* 휴대전화번호 변경시 임시저장 변수 */
private String mobileVrfctNo = null; /* 본인확인 인증번호 */
private String mobileVrfctDd = null; /* 본인확인 인증번호 발송일자 */
@ -401,4 +404,20 @@ public class NlibLoginVO implements Serializable {
this.alerted = alerted;
}
public String getMobileTemp() {
return mobileTemp;
}
public void setMobileTemp(String mobileTemp) {
this.mobileTemp = mobileTemp;
}
public String getEmailTemp() {
return emailTemp;
}
public void setEmailTemp(String emailTemp) {
this.emailTemp = emailTemp;
}
}

View File

@ -38,12 +38,6 @@ public interface UserInfoService
*/
public void updateMyInfo(NlibLoginVO vo) throws Exception;
/** 가입문화원 리스트를 조회한다.
* @param vo
* @return
* @throws Exception
*/
public List<MemberSiteVO> selectCenterSignUpList(NlibLoginVO vo) throws Exception;
/** SNS연동을 해지한다.
* @param oAuthVO
@ -51,12 +45,6 @@ public interface UserInfoService
*/
public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception;
/** 문화원 가입을 해지한다.
* @param siteVO
* @throws Exception
*/
public void deleteCenterLink(MemberSiteVO siteVO) throws Exception;
/** 사용자의 정보를 조회한다.
* @param vo
* @return

View File

@ -10,7 +10,6 @@ import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.NlibLoginVO;
@Mapper("memberDAO")
@ -42,10 +41,6 @@ public interface MemberDAO
public List<NlibLoginVO> selectAlreadySignUpMobile(NlibLoginVO loginVO) throws Exception;
public void insertMemberSite(MemberSiteVO msVO);
public int selectMemberSiteCount(MemberSiteVO msVO);
public int selectSnsIdCount(OAuthUniversalUser oauthUser);
public void deleteMembership(NlibLoginVO loginVO) throws Exception;

View File

@ -17,7 +17,6 @@ import nlib.cmm.crypto.AriaCrypto;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
import nlib.user.service.MemberService;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil;
@ -227,14 +226,6 @@ public class MemberServiceImpl implements MemberService
return memberDAO.selectAlreadySignUpMobile(loginVO);
}
public void insertMemberSite(MemberSiteVO msVO) {
memberDAO.insertMemberSite(msVO);
}
public int selectMemberSiteCount(MemberSiteVO msVO) {
return memberDAO.selectMemberSiteCount(msVO);
}
public int selectSnsIdCount(OAuthUniversalUser oauthUser) {
return memberDAO.selectSnsIdCount(oauthUser);
}

View File

@ -4,7 +4,6 @@ import java.util.List;
import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.NlibLoginVO;
/**
@ -46,22 +45,11 @@ public interface UserInfoDAO
*/
public void updateMyInfo(NlibLoginVO vo) throws Exception;
/** 가입문화원 리스트를 조회한다.
* @param vo
* @return
*/
public List<MemberSiteVO> selectCenterSignUpList(NlibLoginVO vo) throws Exception;
/** SNS연동을 해지한다.
* @param oAuthVO
*/
public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception;
/** 문화원가입을 해지한다.
* @param siteVO
*/
public void deleteCenterLink(MemberSiteVO siteVO) throws Exception;
/** 사용자의 정보를 조회한다.
* @param vo
* @return

View File

@ -10,7 +10,6 @@ import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
import nlib.cmm.crypto.AriaCrypto;
import nlib.user.service.MemberService;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.NlibLoginVO;
import nlib.user.service.UserInfoService;
@ -67,14 +66,6 @@ public class UserInfoServiceImpl implements UserInfoService
userInfoDAO.updateMyInfo(vo);
}
/* 가입문화원 리스트를 조회한다.
* (non-Javadoc)
* @see nlib.user.service.UserInfoService#selectCenterSignUpList(nlib.user.service.NlibLoginVO)
*/
public List<MemberSiteVO> selectCenterSignUpList(NlibLoginVO vo) throws Exception {
return userInfoDAO.selectCenterSignUpList(vo);
}
/* SNS연동을 해지한다.
* (non-Javadoc)
* @see nlib.user.service.UserInfoService#deleteSnsLink(egovframework.com.ext.oauth.service.OAuthUniversalUser)
@ -82,13 +73,6 @@ public class UserInfoServiceImpl implements UserInfoService
public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception {
userInfoDAO.deleteSnsLink(oAuthVO);
}
/* 문화원 가입을 해지한다.
* (non-Javadoc)
* @see nlib.user.service.UserInfoService#deleteCenterLink(nlib.user.service.MemberSiteVO)
*/
public void deleteCenterLink(MemberSiteVO siteVO) throws Exception {
userInfoDAO.deleteCenterLink(siteVO);
}
/* 사용자의 정보를 조회한다.
* (non-Javadoc)
* @see nlib.user.service.UserInfoService#selectMyInfo(nlib.user.service.NlibLoginVO)

View File

@ -44,6 +44,7 @@ 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.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
@ -74,7 +75,6 @@ import nlib.restful.service.DataApiReqVO;
import nlib.user.service.LoginService;
import nlib.user.service.MemberService;
import nlib.user.service.NlibLoginVO;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.UserInfoService;
import nlib.util.StringUtil;
@ -135,6 +135,9 @@ public class MemberController extends NlibCommonController{
@Resource(name = "egovEnvPasswordEncoderService")
EgovPasswordEncoder egovPasswordEncoder;
@Resource(name = "ariaCrypto")
private AriaCrypto ariaCrypto;
@Autowired
private EmailSender emailSender;
@ -251,7 +254,6 @@ public class MemberController extends NlibCommonController{
*/
@RequestMapping(value="/member/insertMemberInfoForm.do")
public String insertMemberInfoForm(HttpServletRequest request,NlibLoginVO vo,HttpSession session,ModelMap model ) throws Exception{
MemberSiteVO msVO= new MemberSiteVO();
int siteCnt;
String jsessionId = session.getId();
String councilCd = (String)session.getAttribute("councilCd");
@ -271,17 +273,6 @@ public class MemberController extends NlibCommonController{
oauthUser.setMbInfoId(mId);
memberService.insertMemberSns(oauthUser);
//가입문화원정보 설정
msVO.setMbInfoId(mId);
msVO.setJoinType(oauthUser.getSnsType());
msVO.setJoinCouncilCd(councilCd);
msVO.setMasterYn("N");
siteCnt= memberService.selectMemberSiteCount(msVO);
//문화원에 가입하지않았을 insert
if(!(siteCnt>0))
{
memberService.insertMemberSite(msVO);
}
//통합처리 url
return "nlib/member/accountConsolidationForm";
}
@ -299,10 +290,12 @@ public class MemberController extends NlibCommonController{
// 등록된 전화번호가 있는 확인 (리스트)
voList = memberService.selectAlreadySignUpMobile(vo);
vo.decodePrivateInfo();
//사용자ID 마스킹처리
for(int i=0;voList.size()>i;i++)
{
voList.get(i).setLoginUserId(maskingEmail(voList.get(i).getLoginUserId()));
voList.get(i).setEmail(maskingEmail(ariaCrypto.decode(voList.get(i).getEmail())));
voList.get(i).setName(maskingName(voList.get(i).getName()));
}
@ -374,7 +367,7 @@ public class MemberController extends NlibCommonController{
loginVO.setJoinCouncilCd(getCurCouncilCd(request));
loginVO = loginService.selectLoginUserInfo(loginVO);
loginVO.setLoginUserId(maskingEmail(loginVO.getLoginUserId()));
loginVO.setEmail(maskingEmail(loginVO.getEmail()));
loginVO.setName(maskingName(loginVO.getName()));
model.addAttribute("result",loginVO);
@ -386,7 +379,6 @@ public class MemberController extends NlibCommonController{
*/
@RequestMapping(value="/member/insertMemberInfo.do")
public String insertMemberInfo(NlibLoginVO vo,ModelMap model,HttpSession session,HttpServletRequest request) throws Exception{
MemberSiteVO msVO= new MemberSiteVO();
EmailVO email = new EmailVO();
@ -410,7 +402,7 @@ public class MemberController extends NlibCommonController{
//이메일인증시 sns제공 이메일과 회원가입폼 이메일 비교
if(!(vo.getEmail().equals(oauthUser.getSnsUserId())))
{
if(!(vo.getEmailVrfctDd().equals(oauthUser.getNlibVO().getEmailVrfctDd()))
if(!(vo.getEmailVrfctNo().equals(oauthUser.getNlibVO().getEmailVrfctNo()))
||oauthUser.getNlibVO().getEmailVrfctDd() == null)
{
model.addAttribute("msg","이메일인증이 정상적이지않습니다. 다시 회원가입을 진행해주세요.");
@ -422,6 +414,9 @@ public class MemberController extends NlibCommonController{
//문화원코드
String councilCd = (String)session.getAttribute("councilCd");
//클라이언트 IP주소
vo.setIp(getRemoteIP(request));
//회원정보 insert
NlibLoginVO result =memberService.insertMemberInfo(vo);
@ -430,17 +425,6 @@ public class MemberController extends NlibCommonController{
memberService.insertMemberSns(oauthUser);
//가입문화원정보 테이블 insert
msVO.setMbInfoId(result.getMbInfoId());
msVO.setJoinType(oauthUser.getSnsType());
msVO.setJoinCouncilCd(councilCd);
msVO.setMasterYn("Y");
memberService.insertMemberSite(msVO);
// 결과가 정상이면, 안내 메일 발송
// > 템플릿파일에서 내용 mailing.sender.membership.template
// > 치환 (사용자명, 이메일주소)
@ -476,17 +460,30 @@ public class MemberController extends NlibCommonController{
* @exception Exception
*/
@RequestMapping(value="/member/emailCertNum.ajax" , method=RequestMethod.POST)
public @ResponseBody Map<String,String> emailCertNum(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
public @ResponseBody Map<String,String> emailCertNum(HttpServletResponse response,Authentication authentication,HttpServletRequest request,HttpSession session) throws Exception{
String email = request.getParameter("email");
//회원가입페이지와 정보수정페이지의 프로세스 분기를위해 가져옴
String pageName = request.getParameter("pageName");
Map<String,String> map = new HashMap<String,String>();
OAuthUniversalUser authUser= new OAuthUniversalUser();
authUser.setSnsUserId(email);
authUser.setSnsEmail(email);
//중복된 아이디가 있을시
if(memberService.selectAlreadySignUpId(authUser) != null)
String mbInfoId="";
String chk= memberService.selectAlreadySignUpId(authUser);
String jsessionId = session.getId();
//사용자 정보를 가져온다. 회원가입페이지라면 null
NlibLoginVO loginVO = getNlibLoginVO(authentication);
mbInfoId= loginVO.getMbInfoId();
//중복된 아이디가 있을시(로그인시 본인의 mbInfoId 동일한경우는 제외)
if(chk != null && !(chk.equals(mbInfoId)))
{
map.put("msg","이미 사용중인 이메일입니다.");
map.put("emailCertYn","N");
return map;
@ -497,8 +494,16 @@ public class MemberController extends NlibCommonController{
//인증번호 생성
String CertNumber=memberService.numberGen(6,1);
System.out.println(CertNumber);
// 정보 페이지
if("myInfo".equals(pageName))
{
loginVO.setEmailTemp(email);
loginVO.setEmailVrfctNo(CertNumber);
replaceNlibLoginVO(request, loginVO);
}else
{
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO();
@ -509,7 +514,7 @@ public class MemberController extends NlibCommonController{
vo.setEmailVrfctNo(CertNumber);
oauthUser.setNlibVO(vo);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
}
//이메일 발송
// 결과가 정상이면, 안내 메일 발송
@ -532,7 +537,7 @@ public class MemberController extends NlibCommonController{
for(String readLine : list) {
contents+=readLine;
}
contents=contents.replace("${userName}",vo.getName()+"님의 인증번호는"+CertNumber+"입니다.");
contents=contents.replace("${userName}","인증번호는"+CertNumber+"입니다.");
emailVO.setReciver(reciver);
@ -549,20 +554,41 @@ public class MemberController extends NlibCommonController{
* @exception Exception
*/
@RequestMapping(value="/member/emailCertNumChk.ajax" , method=RequestMethod.POST)
public @ResponseBody String emailCertNumChk(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
public @ResponseBody String emailCertNumChk(HttpServletResponse response,Authentication authentication,HttpServletRequest request,HttpSession session) throws Exception{
String email = request.getParameter("email");
String emailVrfctNo = request.getParameter("emailVrfctNo");
//회원가입페이지와 정보수정페이지의 프로세스 분기를위해 가져옴
String pageName = request.getParameter("pageName");
SimpleDateFormat format = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
Date time = new Date();
// 정보 페이지
if("myInfo".equals(pageName))
{
//사용자 정보를 가져온다. 회원가입페이지라면 null
NlibLoginVO loginVO = getNlibLoginVO(authentication);
//이메일과 인증번호 확인
if(loginVO.getEmailTemp().equals(email) && loginVO.getEmailVrfctNo().equals(emailVrfctNo))
{
loginVO.setEmailVrfctDd(format.format(time));
replaceNlibLoginVO(request, loginVO);
return "true";
}else {
return "false";
}
}else
{
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
//핸드폰번호와 인증번호 확인
//이메일과 인증번호 확인
if(oauthUser.getNlibVO().getEmail().equals(email) && oauthUser.getNlibVO().getEmailVrfctNo().equals(emailVrfctNo))
{
Date time = new Date();
NlibLoginVO sessionNlibLoginVO = oauthUser.getNlibVO();
sessionNlibLoginVO.setEmailVrfctDd(format.format(time));
oauthUser.setNlibVO(sessionNlibLoginVO);
@ -572,23 +598,34 @@ public class MemberController extends NlibCommonController{
return "false";
}
}
}
/**
* 핸드폰 인증번호 발송
* @exception Exception
*/
@RequestMapping(value="/member/mobileCertNum.ajax" , method=RequestMethod.POST)
public @ResponseBody void phoneCertNum(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
public @ResponseBody void phoneCertNum(HttpServletResponse response,Authentication authentication,HttpServletRequest request,HttpSession session) throws Exception{
String mobileNo = request.getParameter("mobileNo");
//회원가입페이지와 정보수정페이지의 프로세스 분기를위해 가져옴
String pageName = request.getParameter("pageName");
//인증번호 생성
String CertNumber=memberService.numberGen(6,1);
System.out.println(CertNumber);
//세션에 저장
String jsessionId = session.getId();
// 정보 페이지
if("myInfo".equals(pageName))
{
NlibLoginVO loginVO = getNlibLoginVO(authentication);
loginVO.setMobileTemp(mobileNo);
loginVO.setMobileVrfctNo(CertNumber);
replaceNlibLoginVO(request, loginVO);
}
else {
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때
if(vo==null)
@ -598,6 +635,8 @@ public class MemberController extends NlibCommonController{
vo.setMobileVrfctNo(CertNumber);
oauthUser.setNlibVO(vo);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
}
//문자발송 솔루션
@ -609,12 +648,32 @@ public class MemberController extends NlibCommonController{
* @exception Exception
*/
@RequestMapping(value="/member/mobileCertNumChk.ajax" , method=RequestMethod.POST)
public @ResponseBody String mobileCertNumChk(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
public @ResponseBody String mobileCertNumChk(HttpServletResponse response,Authentication authentication,HttpServletRequest request,HttpSession session) throws Exception{
String mobileNo = request.getParameter("mobileNo");
String mobileVrfctNo = request.getParameter("mobileVrfctNo");
//회원가입페이지와 정보수정페이지의 프로세스 분기를위해 가져옴
String pageName = request.getParameter("pageName");
SimpleDateFormat format = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
Date time = new Date();
// 정보 페이지
if("myInfo".equals(pageName))
{
//사용자 정보를 가져온다. 회원가입페이지라면 null
NlibLoginVO loginVO = getNlibLoginVO(authentication);
//핸드폰번호와 인증번호 확인
if(loginVO.getMobileTemp().equals(mobileNo) && loginVO.getMobileVrfctNo().equals(mobileVrfctNo))
{
loginVO.setMobileVrfctDd(format.format(time));
replaceNlibLoginVO(request, loginVO);
return "true";
}else {
return "false";
}
}else {
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
@ -622,7 +681,6 @@ public class MemberController extends NlibCommonController{
//핸드폰번호와 인증번호 확인
if(oauthUser.getNlibVO().getMobileNo().equals(mobileNo) && oauthUser.getNlibVO().getMobileVrfctNo().equals(mobileVrfctNo))
{
Date time = new Date();
NlibLoginVO sessionNlibLoginVO = oauthUser.getNlibVO();
sessionNlibLoginVO.setMobileVrfctDd(format.format(time));
oauthUser.setNlibVO(sessionNlibLoginVO);
@ -632,6 +690,7 @@ public class MemberController extends NlibCommonController{
return "false";
}
}
}
/**
* 회원탈퇴
@ -645,7 +704,7 @@ public class MemberController extends NlibCommonController{
loginVO = loginService.selectLoginUserInfo(loginVO);
//이메일,이름 마스킹
loginVO.setLoginUserId(maskingEmail(loginVO.getLoginUserId()));
loginVO.setEmail(maskingEmail(loginVO.getEmail()));
loginVO.setName(maskingName(loginVO.getName()));
model.addAttribute("loginVO",loginVO);
return "nlib/member/deleteMembershipForm";
@ -702,6 +761,7 @@ public class MemberController extends NlibCommonController{
*/
@RequestMapping(value="/member/initPassword.ajax")
public @ResponseBody String initPassword(NlibLoginVO vo,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
vo.encodePrivateInfo();
NlibLoginVO loginVO=userInfoService.selectMyInfo(vo);
@ -714,10 +774,11 @@ public class MemberController extends NlibCommonController{
String encodedText=null;
//ID가 일치하는지 확인
if(loginVO!=null && loginVO.getLoginUserId().equals(vo.getLoginUserId()))
vo.decodePrivateInfo();
if(loginVO!=null)
{
String reciver = vo.getLoginUserId(); //받을사람의 이메일입니다.-> naver nate 등등
String reciver = vo.getEmail(); //받을사람의 이메일입니다.-> naver nate 등등
String subject = "온라인자료대출시스템 비밀번호 초기화 메일입니다.";
@ -743,7 +804,7 @@ public class MemberController extends NlibCommonController{
vo.setPassword(encodedText);
vo.setMbInfoId(gUserId);
vo.encodePrivateInfo();
//암호화된 비밀번호로 수정
memberService.changePassword(vo);
@ -785,7 +846,7 @@ public class MemberController extends NlibCommonController{
if(loginVO!=null && (loginVO.getPassword().equals(password)))
{
loginVO.setPassword(newPassword);
loginVO.encodePrivateInfo();
//암호화된 비밀번호로 수정
memberService.changePassword(loginVO);
message="비밀번호 변경이 처리되었습니다.";
@ -889,4 +950,24 @@ public class MemberController extends NlibCommonController{
rttr.addFlashAttribute("email",userInfo.get("email"));
return "redirect:/member/insertMemberInfoForm.do";
}*/
//클라이언트 IP 가져오기
public static String getRemoteIP(HttpServletRequest request){
String ip = request.getHeader("X-FORWARDED-FOR");
//proxy 환경일 경우
if (ip == null || ip.length() == 0) {
ip = request.getHeader("Proxy-Client-IP");
}
//웹로직 서버일 경우
if (ip == null || ip.length() == 0) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0) {
ip = request.getRemoteAddr() ;
}
return ip;
}
}

View File

@ -26,7 +26,6 @@ import nlib.security.SecUserDetailsService;
import nlib.security.SecUserVO;
import nlib.user.service.LoginService;
import nlib.user.service.MemberService;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.NlibLoginVO;
import nlib.user.service.UserInfoService;
import nlib.cmm.NlibCommonController;
@ -94,14 +93,10 @@ public class UserInfoController extends NlibCommonController {
List<OAuthUniversalUser> snsList = new ArrayList<OAuthUniversalUser>();
List<MemberSiteVO> centerList = new ArrayList<MemberSiteVO>();
//sns연동 계정 리스트
snsList = userInfoService.selectSnsSignUpList(loginVO);
//가입된 문화원 리스트
centerList = userInfoService.selectCenterSignUpList(loginVO);
String encodedText=null;
System.out.println(loginVO.getLoginUserId()+vo.getPassword());
encodedText = egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+vo.getPassword());
@ -110,7 +105,6 @@ public class UserInfoController extends NlibCommonController {
//암호화된 패스워드 비교
if(loginVO.getPassword().equals(vo.getPassword())) {
model.addAttribute("loginVO",loginVO);
model.addAttribute("centerList",centerList);
model.addAttribute("snsList",snsList);
return "nlib/userInfo/putMyInfo";
}else {
@ -125,8 +119,36 @@ public class UserInfoController extends NlibCommonController {
* @return
* @exception Exception
*/
@RequestMapping(value="/userInfo/updateMyInfo.ajax" , method=RequestMethod.POST)
public @ResponseBody void updateMyInfo(NlibLoginVO vo,HttpServletResponse response,HttpServletRequest request) throws Exception{
@RequestMapping(value="/userInfo/updateMyInfo.do" , method=RequestMethod.POST)
public String updateMyInfo(NlibLoginVO vo,Authentication authentication,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{
//사용자 정보를 가져온다.
NlibLoginVO loginVO = getNlibLoginVO(authentication);
//이메일인증 확인
if(!(vo.getEmail().equals(loginVO.getEmail())))
{
if(!(vo.getEmailVrfctNo().equals(loginVO.getEmailVrfctNo()))
||loginVO.getEmailVrfctDd() == null)
{
model.addAttribute("msg","이메일인증이 정상적이지않습니다.");
model.addAttribute("url","${pageContext.request.contextPath}"+"/userInfo/getMyInfo.do");
return "nlib/cmm/alert";
}
vo.setEmail(loginVO.getEmailTemp());
}
//핸드폰인증 확인
if(!(vo.getMobileNo().equals(loginVO.getMobileNo())))
{
if(!(vo.getMobileVrfctNo().equals(loginVO.getMobileVrfctNo()))
||loginVO.getMobileVrfctDd() == null)
{
model.addAttribute("msg","핸드폰인증이 정상적이지않습니다.");
model.addAttribute("url","${pageContext.request.contextPath}"+"/userInfo/getMyInfo.do");
return "nlib/cmm/alert";
}
vo.setMobileNo(loginVO.getMobileTemp());
}
String encodedText=null;
encodedText = egovPasswordEncoder.encryptPassword(vo.getPassword());
@ -134,11 +156,12 @@ public class UserInfoController extends NlibCommonController {
// 정보 수정
userInfoService.updateMyInfo(vo);
NlibLoginVO loginVO=(NlibLoginVO) SecUserDetailsService.loadUserByUsername(vo.getLoginUserId());
NlibLoginVO sessionVO=(NlibLoginVO) SecUserDetailsService.loadUserByUsername(vo.getLoginUserId());
//세션에 수정정보로 주입
replaceNlibLoginVO(request,loginVO);
replaceNlibLoginVO(request,sessionVO);
return "nlib/userInfo/getMyInfo";
}
/**
@ -165,16 +188,4 @@ public class UserInfoController extends NlibCommonController {
userInfoService.deleteSnsLink(oAuthVO);
}
/** 문화원 가입을 해지한다.
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value="/userInfo/deleteCenterLink.ajax")
public @ResponseBody void deleteCenterLink(HttpServletResponse response,HttpServletRequest request) throws Exception{
MemberSiteVO siteVO = new MemberSiteVO();
siteVO.setMbSiteId(request.getParameter("mbSiteId"));
userInfoService.deleteCenterLink(siteVO);
}
}

View File

@ -17,6 +17,8 @@
<result column="ADDRESS" property="address"/>
<result column="ADDRESS_DETAIL" property="addressDetail"/>
<result column="JOIN_DATE" property="joinDate"/>
<result column="IP" property="IP"/>
<result column="LAST_ACCESS_DD" property="lastAccessDd"/>
</resultMap>
<!-- 회원가입 -->
@ -47,6 +49,8 @@
,JOIN_DATE
,MOBILE_VRFCT_NO
,MOBILE_VRFCT_DD
,IP
,LAST_ACCESS_DD
)
VALUES
(
@ -69,6 +73,8 @@
,DATE_FORMAT(CURDATE(), '%Y%m%d')
,#{mobileVrfctNo}
,STR_TO_DATE(#{mobileVrfctDd},'%Y-%m-%d %H:%i:%S')
,#{ip}
,NOW()
)
</insert>
@ -81,7 +87,7 @@
,MOD_ID = #{mbInfoId}
,MOD_DD = NOW()
WHERE 1=1
AND LOGIN_USER_ID = #{loginUserId}
AND EMAIL = #{email}
</update>
<!-- 회원가입시 SNS인증한 계정 ID와 일치하는 계정이 있는지 체크 -->
@ -163,40 +169,6 @@
</insert>
<!-- 회원가입시 가입문화원정보추가 , 기존 계정 ID와 일치시 통합처리시 추가-->
<insert id="insertMemberSite" parameterType="nlib.user.service.MemberSiteVO">
INSERT INTO
MB_SITE
(
MB_INFO_ID
,JOIN_TYPE
,JOIN_AGREE_DD
,JOIN_COUNCIL_CD
,MASTER_YN
)
VALUES
(
#{mbInfoId}
,#{joinType}
,NOW()
,#{joinCouncilCd}
,#{masterYn}
);
</insert>
<!-- 이미 가입문화원인지 확인 -->
<select id="selectMemberSiteCount" parameterType="nlib.user.service.MemberSiteVO" resultType="int">
SELECT
COUNT(*)
FROM
MB_SITE
WHERE 1=1
AND MB_INFO_ID = #{mbInfoId}
AND JOIN_COUNCIL_CD = #{joinCouncilCd}
AND UNLINK_DD IS NULL;
</select>
<!-- SnsId로 기가입자인지 판별 -->
<select id="selectSnsIdCount" parameterType="egovframework.com.ext.oauth.service.OAuthUniversalUser" resultType="int">
SELECT

View File

@ -24,15 +24,6 @@
<result column="SNS_USER_ID" property="snsUserId"/>
<result column="REG_DD" property="regDd"/>
</resultMap>
<resultMap type="nlib.user.service.MemberSiteVO" id="MemberSiteVO">
<result column="MB_SITE_ID" property="mbSiteId"/>
<result column="MB_INFO_ID" property="mbInfoId"/>
<result column="JOIN_TYPE" property="joinType"/>
<result column="JOIN_AGREE_DD" property="joinAgreeDd"/>
<result column="JOIN_COUNCIL_CD" property="joinCouncilCd"/>
<result column="JOIN_COUNCIL_NM" property="joinCouncilNm"/>
<result column="MASTER_YN" property="masterYn"/>
</resultMap>
<!-- sns계정 리스트 -->
<select id="selectSnsSignUpList" parameterType="nlib.user.service.NlibLoginVO" resultMap="OAuthUniversalUser">
SELECT
@ -60,14 +51,18 @@
MB_INFO
WHERE 1=1
<if test='mbInfoId != null and mbInfoId != ""'>
AND MB_INFO_ID = #{mbInfoId};
AND MB_INFO_ID = #{mbInfoId}
</if>
<if test='mobileNo != null and mobileNo != ""'>
AND MOBILE_NO = #{mobileNo};
AND MOBILE_NO = #{mobileNo}
</if>
<if test='loginUserId != null and loginUserId != ""'>
AND LOGIN_USER_ID = #{loginUserId};
AND LOGIN_USER_ID = #{loginUserId}
</if>
<if test='email != null and email != ""'>
AND EMAIL = #{email}
</if>
LIMIT 1;
</select>
<!-- 내 정보 수정 -->
@ -81,6 +76,7 @@
,MOBILE_NO=#{mobileNo}
,ZIP_CODE=#{zipCode}
,ADDRESS=#{address}
,EMAIL=#{email}
,ADDRESS_DETAIL=#{addressDetail}
,GENDER=#{gender}
,MOD_ID=#{mbInfoId}
@ -89,26 +85,6 @@
AND MB_INFO_ID=#{mbInfoId}
</update>
<!-- 가입문화원 리스트를 조회한다. -->
<select id="selectCenterSignUpList" parameterType="nlib.user.service.NlibLoginVO" resultMap="MemberSiteVO">
SELECT
mb.MB_SITE_ID
,mb.MB_INFO_ID
,mb.JOIN_TYPE
,mb.JOIN_AGREE_DD
,mb.JOIN_COUNCIL_CD
,sm.DEPT_NM JOIN_COUNCIL_NM
,mb.MASTER_YN
FROM
MB_SITE mb
LEFT OUTER JOIN
SM_DEPT sm
ON sm.ORG_CD = mb.JOIN_COUNCIL_CD
WHERE 1=1
AND MB_INFO_ID = #{mbInfoId}
AND UNLINK_DD IS NULL
ORDER BY mb.MB_SITE_ID
</select>
<!-- SNS연동을 해지한다. -->
<update id="deleteSnsLink" parameterType="egovframework.com.ext.oauth.service.OAuthUniversalUser">
UPDATE
@ -123,19 +99,5 @@
AND MB_INFO_ID = #{mbInfoId};
</if>
</update>
<!-- 문화원의 가입을 해지한다. -->
<update id="deleteCenterLink" parameterType="nlib.user.service.MemberSiteVO">
UPDATE
MB_SITE
SET
UNLINK_DD=NOW()
WHERE 1=1
<if test="mbSiteId != null">
AND MB_SITE_ID = #{mbSiteId};
</if>
<if test="mbInfoId != null">
AND MB_INFO_ID = #{mbInfoId};
</if>
</update>
</mapper>

View File

@ -8,8 +8,8 @@
p:host="smtp.gmail.com"
p:port="587"
p:protocol="smtp"
p:username="siasia0824@gmail.com"
p:password="whdtjs!234">
p:username="teachteam02@gmail.com"
p:password="wltlrtkdjq11$$">
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>

View File

@ -24,12 +24,12 @@ $(document).ready(function(){
}
});
function selectAccount(mbInfoId,name,loginUserId)
function selectAccount(mbInfoId,name,Email)
{
$("#alreadySingUpForm").css("display","none");
$("#mbInfoId").val(mbInfoId);
$("#selectName").val(name);
$("#selectLoginUserId").val(loginUserId);
$("#selectEmail").val(Email);
$("#selectAccountForm").css("display","block");
}
function goPrevious()
@ -80,9 +80,9 @@ function accountLink()
<table>
<c:forEach items="${result}" var="result" varStatus="status">
<tr onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.loginUserId}"/>');">
<tr onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.email}"/>');">
<td><c:out value="${result.name}"/></td>
<td><c:out value="${result.loginUserId}"/></td>
<td><c:out value="${result.email}"/></td>
</tr>
</c:forEach>
</table>
@ -91,7 +91,7 @@ function accountLink()
<form id="selectAccountForm" name="selectAccountForm" style="display:none;">
<p1>비밀번호 입력</p1>
<div id="accountInfo">
<input type="text" id="selectName" name="selectName" readonly><input type="text" id="selectLoginUserId" name="selectLoginUserId" readonly>
<input type="text" id="selectName" name="selectName" readonly><input type="text" id="selectEmail" name="selectEmail" readonly>
</div>
<input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"><br>
<a href="javascript:notAlreadySingUp();" onclick="return false;">비밀번호를 잊으셨나요?</a>

View File

@ -61,7 +61,7 @@ function deleteMembership()
<form id="deleteMembershipForm" name="deleteMembershipForm">
<p1>회원탈퇴</p1><br>
이름 : <c:out value="${loginVO.name }"/><br>
이메일 : <c:out value="${loginVO.loginUserId }"/><br>
이메일 : <c:out value="${loginVO.email }"/><br>
<input type="password" id="password" name="password" placeholder="비밀번호"><br>
<input type="button" onclick="deleteMembership();" value="탈퇴하기"><input type="button" onclick="location.href='${pageContext.request.contextPath}/userInfo/putMyInfo.do'" value="취소">
</form>

View File

@ -60,7 +60,7 @@ function goFindPw(){
<form id="initPw" name="initPw" method="post">
<h1>비밀번호 찾기</h1>
<p>회원님의 본인확인을 위해 가입시 등록하신 이메일을 입력하여 주시기 바랍니다.</p><br>
Email <input type="text" id="loginUserId" name="loginUserId">
Email <input type="text" id="email" name="email">
<input type="button" onclick ="goFindPw();" value="임시비밀번호 받기">
</form>
</body>

View File

@ -58,7 +58,7 @@ function signUp(){
return false;
}
if($("#zipCode").val()=="" || $("#address").val()=="" || $("#addressDetail").val()=="")
if($("#zipCode").val()=="" || $("#address").val()=="")
{
alert("주소를 입력해주세요.");
return false;
@ -74,7 +74,7 @@ function signUp(){
<%
//연락받을 이메일 입력
%>
$("#email").val($("#loginUserId").val());
$("#loginUserId").val($("#email").val());
document.joinForm.action="/nlib/member/insertMemberInfo.do";
return true;
}else{
@ -121,8 +121,8 @@ $(document).ready(function() {
<%
//아이디가 변하는것 실시간 감지
%>
$("#loginUserId").on("propertychange change keyup paste input", function() {
if($("#snsUserId").val() == $("#loginUserId").val())
$("#email").on("propertychange change keyup paste input", function() {
if($("#snsUserId").val() == $("#email").val())
{
$("#emailCertYn").val("Y");
$("#emailCertSendBtn").css("display","none");
@ -142,7 +142,7 @@ function emailCert(){
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(!regExp.test($("#loginUserId").val()) || $("#loginUserId").val()==""){
if(!regExp.test($("#email").val()) || $("#email").val()==""){
alert("형식에 맞지 않는 이메일입니다.");
return false;
@ -152,13 +152,13 @@ function emailCert(){
url : "/nlib/member/emailCertNum.ajax",
type : "POST",
async: false,
data : {"email" : $("#loginUserId").val()},
data : {"email" : $("#email").val()},
success : function(result){
alert(result.msg);
if(result.emailCertYn=="Y")
{
$("#emailCertYn").val("Y");
$("#emailCertYn").val("N");
$("#emailCertForm").css("display","block")
}
if(result.emailCertYn=="N")
@ -182,7 +182,7 @@ function certEmailCheck(){
url : "/nlib/member/emailCertNumChk.ajax",
type : "POST",
data : {"emailVrfctNo" : $("#emailVrfctNo").val(),
"email" : $("#loginUserId").val()},
"email" : $("#email").val()},
async: false,
success : function(result){
if(result=="true")
@ -427,9 +427,9 @@ label.error {
<form id="joinForm" name="joinForm" method="post" onsubmit="return signUp()">
<table>
<tr>
<td id="title">아이디</td>
<td id="title">이메일</td>
<td>
<input type="email" id="loginUserId" name="loginUserId" maxlength="30" required value="<c:out value="${loginVO.snsUserId}"/>" ><button type="button" id="emailCertSendBtn" name="emailCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="emailCert()" required>인증번호 받기</button>
<input type="email" id="email" name="email" maxlength="30" required value="<c:out value="${loginVO.snsUserId}"/>" ><button type="button" id="emailCertSendBtn" name="emailCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="emailCert()" required>인증번호 받기</button>
<div id="emailCertForm" style="display:none;"><br><input type='text' id='emailVrfctNo' name='emailVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certEmailCheck()' >인증번호 확인</button></div>
</td>
</tr>
@ -505,7 +505,7 @@ label.error {
<input type="hidden" id="birthday" name="birthday" >
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value="Y">
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
<input type="hidden" id="email" name="email" >
<input type="hidden" id="loginUserId" name="loginUserId" >
<input type="hidden" id="snsMobileNo" name="snsMobileNo" value="<c:out value="${loginVO.snsMobileNo}"/>">
<input type="hidden" id="snsUserId" name="snsUserId" value="<c:out value="${loginVO.snsUserId}"/>">

View File

@ -61,7 +61,7 @@ $(document).ready(function() {
//핸드폰 번호가 변하는것 실시간 감지
%>
$("#mobileNo").on("propertychange change keyup paste input", function() {
if($("#snsMobileNo").val() == $("#mobileNo").val())
if($("#userMobileNo").val() == $("#mobileNo").val())
{
$("#mobileCertYn").val("Y");
$("#mobileCertSendBtn").css("display","none");
@ -71,6 +71,21 @@ $(document).ready(function() {
$("#mobileCertSendBtn").css("display","block");
}
});
<%
//아이디가 변하는것 실시간 감지
%>
$("#email").on("propertychange change keyup paste input", function() {
if($("#userEmail").val() == $("#email").val())
{
$("#emailCertYn").val("Y");
$("#emailCertSendBtn").css("display","none");
$("#emailCertForm").css("display","none");
}else{
$("#emailCertYn").val("N");
$("#emailCertSendBtn").css("display","block");
}
});
$("input:radio[name='gender']:radio[value='${loginVO.gender}']").prop("checked",true);
@ -82,6 +97,12 @@ $(document).ready(function() {
})
function update(){
if($("#emailCertYn").val()!="Y")
{
alert("이메일 인증이 필요합니다.");
return false;
}
if(!checkBirthday())
{
alert("생년월일이 형식에 맞지 않습니다. 확인해주세요.");
@ -93,7 +114,7 @@ function update(){
return false;
}
if($("#zipCode").val()=="" || $("#address").val()=="" || $("#addressDetail").val()=="")
if($("#zipCode").val()=="" || $("#address").val()=="")
{
alert("주소를 입력해주세요.");
return false;
@ -102,22 +123,7 @@ function update(){
if(confirm("정보를 수정하시겠습니까?")){
$("#birthday").val($("#birth_yy").val()+$("#birth_mm").val()+$("#birth_dd").val());
var queryString = $("form[name=updateForm]").serialize() ;
$.ajax({
url : "${pageContext.request.contextPath}/userInfo/updateMyInfo.ajax",
type : "POST",
async: false,
data : queryString,
success : function(result){
alert("정보를 수정하였습니다.");
//인증번호 확인창
location.replace("${pageContext.request.contextPath}/userInfo/getMyInfo.do");
},error : function(){
alert("정보 수정에 실패하였습니다.");
}
})
return true;
}
return false;
}
@ -148,6 +154,73 @@ function changePassword(){
return false;
}
<%
//이메일 인증
%>
function emailCert(){
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(!regExp.test($("#email").val()) || $("#email").val()==""){
alert("형식에 맞지 않는 이메일입니다.");
return false;
}
$.ajax({
url : "/nlib/member/emailCertNum.ajax",
type : "POST",
async: false,
data : {"email" : $("#email").val(),
"pageName" : "myInfo"},
success : function(result){
alert(result.msg);
if(result.emailCertYn=="Y")
{
$("#emailCertYn").val("N");
$("#emailCertForm").css("display","block")
}
if(result.emailCertYn=="N")
{
$("#emailCertYn").val("N");
$("#emailCertForm").css("display","none")
}
},error : function(){
}
})
}
<%
//이메일 인증번호 확인
%>
function certEmailCheck(){
<%
//ajax 사용자가 입력한 번호를 보내 RESTfull server에서 확인 success or fail 반환 (3분이내인지도)
%>
$.ajax({
url : "/nlib/member/emailCertNumChk.ajax",
type : "POST",
data : {"emailVrfctNo" : $("#emailVrfctNo").val(),
"email" : $("#email").val(),
"pageName" : "myInfo"},
async: false,
success : function(result){
if(result=="true")
{
alert("인증되었습니다.");
$("#emailCertYn").val("Y");
}else
{
alert("인증번호가 일치하지않습니다.");
}
}
,error : function(){
}
})
}
<%
//핸드폰 인증번호 받기
%>
@ -167,7 +240,8 @@ function mobileCert(){
url : "/nlib/member/mobileCertNum.ajax",
type : "POST",
async: false,
data : {"mobileNo" : $("#mobileNo").val()},
data : {"mobileNo" : $("#mobileNo").val(),
"pageName" : "myInfo"},
success : function(result){
alert("인증번호가 발송됐습니다.");
$("#mobileCertYn").val("N");
@ -189,7 +263,8 @@ function certMobileCheck(){
url : "/nlib/member/mobileCertNumChk.ajax",
type : "POST",
data : {"mobileVrfctNo" : $("#mobileVrfctNo").val(),
"mobileNo" : $("#mobileNo").val()},
"mobileNo" : $("#mobileNo").val(),
"pageName" : "myInfo"},
async: false,
success : function(result){
if(result=="true")
@ -323,27 +398,6 @@ function snsUnlink(snsId){
}
<%
/* 문화원 가입해지 */
%>
function centerUnlink(siteId){
if(confirm("문화원 가입을 해제하시겠습니까?"))
{
$.ajax({
url : "${pageContext.request.contextPath}/userInfo/deleteCenterLink.ajax",
type : "POST",
async: false,
data : {mbSiteId:siteId},
success : function(result){
alert("가입이 해지되었습니다.");
$("#c"+siteId).remove();
},error : function(){
}
})
}
}
</script>
<style type="text/css">
@ -416,12 +470,13 @@ label.error {
<b><font size="6" color="gray">정보수정</font></b>
<br><br><br>
<form id="updateForm" name="updateForm" method="post" onsubmit="return update()" >
<form id="updateForm" name="updateForm" method="post" onsubmit="return update()" action="${pageContext.request.contextPath}/userInfo/updateMyInfo.do">
<table>
<tr>
<td id="title">아이디</td>
<td id="title">이메일</td>
<td>
<input type="email" id="loginUserId" name="loginUserId" maxlength="30" required readonly value=<c:out value="${loginVO.loginUserId}"/> >
<input type="email" id="email" name="email" maxlength="30" required value=<c:out value="${loginVO.email}"/> ><button type="button" id="emailCertSendBtn" name="emailCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="emailCert()" required>인증번호 받기</button>
<div id="emailCertForm" style="display:none;"><br><input type='text' id='emailVrfctNo' name='emailVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certEmailCheck()' >인증번호 확인</button></div>
</td>
</tr>
<tr>
@ -471,13 +526,17 @@ label.error {
<tr>
<td id="title">휴대전화</td>
<td id="Cert">
<input type="text" id="mobileNo" name="mobileNo" required value="<c:out value="${loginVO.mobileNo}"/>" ><button type="button" id="mobileCertSendBtn" style="text-align:left;" class="btn-warning" onclick="mobileCert()" required>인증번호 받기</button>
<input type="text" id="mobileNo" name="mobileNo" required value="<c:out value="${loginVO.mobileNo}"/>" ><button type="button" id="mobileCertSendBtn" style="text-align:left;display:none;" class="btn-warning" onclick="mobileCert()" required>인증번호 받기</button>
<div id="mobileCertForm" style="display:none;"><br><input type='text' id='mobileVrfctNo' name='mobileVrfctNo'> <button type='button' style='text-align:left;' class='btn-warning' onclick='certMobileCheck()' >인증번호 확인</button></div>
</td>
</tr>
</table>
<br>
<input type="hidden" id="mobileCertYn" name="mobileCertYn" value=<c:out value="Y"/>>
<input type="hidden" id="emailCertYn" name="emailCertYn" value="Y">
<input type="hidden" id="loginUserId" name="loginUserId" value='<c:out value="${loginVO.loginUserId}"/>'>
<input type="hidden" id="userEmail" name="userEmail" value='<c:out value="${loginVO.email}"/>'>
<input type="hidden" id="userMobileNo" name="userMobileNo" value='<c:out value="${loginVO.mobileNo}"/>'>
<input type="hidden" id="birthday" name="birthday" >
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value="${loginVO.mbInfoId}"/>" >
<input type="hidden" id="extMobileNo" name="extMobileNo" value="<c:out value="${loginVO.mobileNo}"/>">
@ -493,11 +552,6 @@ label.error {
<br>
</c:forEach>
<br>
<p1>가입된 문화원 </p1><br>
<c:forEach var="centerList" items="${centerList}" varStatus="status">
<a id="<c:out value="c${centerList.mbSiteId}" />"><c:out value="${centerList.joinCouncilNm}" /><c:out value="${centerList.joinAgreeDd }" /> 가입완료 <c:if test="${centerList.masterYn ne 'Y'}"><input type="button" onclick=centerUnlink("<c:out value="${centerList.mbSiteId}" />"); value="가입해제"></c:if></a>
<br>
</c:forEach>
<p1>비밀번호 변경 </p1>
<form id="passwordForm" name="passwordForm" method="post" onsubmit="return changePassword()" >
<table>