diff --git a/Base/Controller/FOCommon.cs b/Base/Controller/FOCommon.cs index 977fb85..7f53c11 100644 --- a/Base/Controller/FOCommon.cs +++ b/Base/Controller/FOCommon.cs @@ -121,12 +121,75 @@ namespace NP.Base.Controllers { return JsonBack(new JsonRtn() { code = 1000, obj = -1, msg = u.subdomain }); } + //비밀번호 변경 90일 경과 + if (u.udt.AddDays(90) < DateTime.Now) + { + return JsonBack(new JsonRtn() { code = 1000, msg = "-2", obj = u.userno }); + } + // 휴면상태 + if (u.status == 8) + { + return JsonBack(new JsonRtn() { code = 1000, msg = "-3", obj = u.userno }); + } return JsonOK(u.userno); } } return JsonOK(0); } + /// + /// 비밀번호 변경 저장 (비밀번호 변경 90일 지난 사용자) + /// + /// + /// + public JsonResult PwChange(VMUser vm) + { + if (string.IsNullOrEmpty(vm.User.userpass) || vm.User.userpass.Trim() == "") + { + Dao.Save("users.resetuserpass", new Hashtable() { { "userno", vm.userno } }); + return JsonOK(1); + } + if (vm.userno > 0 && !string.IsNullOrEmpty(vm.User.userpass) && vm.User.userpass.Trim() != "") + { + if (Dao.Save("users.resetuserpass", new Hashtable() { { "userpass", NP.Base.Lib.KISA_SHA256.SHA256Hash(vm.User.userpass) }, { "userno", vm.userno } }) == 1) + { + var u = GoLogin(vm.User.userid, vm.User.userpass); + if (u != null) + { + return JsonOK(1); + } + } + } + return JsonOK(0); + } + + /// + /// 휴면해제 + /// + /// + /// + public JsonResult DormantCancel(int userno) + { + if (Dao.Get("users.dormants", new Hashtable() { { "userno", userno } }).Count() < 1) + { + return JsonBack(new JsonRtn() { code = 1 }); + } + var result = Dao.Save("users.dormant.cancel", new Hashtable() { { "usernos", userno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }); + var user = Dao.Get("users.findmes", new Hashtable() { { "userno", userno } }).FirstOrDefault(); + if (user != null) + { + var u = GoLogin(user.userid, "rhksflwkfhrmdls999"); + if (u != null) + { + return JsonOK(result); + } + else + { + return JsonBack(new JsonRtn() { code = 2 }); + } + } + return JsonOK(0); + } [HttpPost] public JsonResult GetBoards(int btype, int pn, int prc, String sc) @@ -179,11 +242,20 @@ namespace NP.Base.Controllers if (string.IsNullOrEmpty(email)) { return JsonOK(-1); } email = email.Replace(" ", "").Replace(" ", ""); List users = new List() { }; + bool IsEmail = false; if (email.Contains("@")) { IsEmail = true; users = Dao.Get("users.findme", new Hashtable() { { "email", email } }).ToList(); + + if(users.Count() < 1) + { + // user 테이블 검색 뒤 없을 경우 휴면테이블에서 검색 + users = Dao.Get("users.findmes", new Hashtable() { { "email", email } }).ToList(); + + } + } //else //{ diff --git a/Dao/MyBatis/Maps/User.xml b/Dao/MyBatis/Maps/User.xml index a0b69b5..64cb95a 100644 --- a/Dao/MyBatis/Maps/User.xml +++ b/Dao/MyBatis/Maps/User.xml @@ -607,14 +607,14 @@ where status<>99 and userno in ($usernos$) --> + + + update users set pwcalltime=,pwcallno=#pwcallno# where userno=#userno# @@ -649,7 +673,11 @@ ,usertype ,pwcallno from users - where userno=#userno# and pwcallno=#pwcallno# and pwcalltime is not null and date_add(pwcalltime, interval 24 hour) > + where userno=#userno# + + and pwcallno=#pwcallno# and pwcalltime is not null and date_add(pwcalltime, interval 24 hour) > + + update users set userpass=#userpass#, pwcalltime=null,pwcallno=null where userno=#userno# and pwcalltime is not null and pwcallno=#pwcallno# and date_add(pwcalltime, interval 24 hour) > diff --git a/FO/Controllers/AccountController.cs b/FO/Controllers/AccountController.cs index 90e4b99..7ea4162 100644 --- a/FO/Controllers/AccountController.cs +++ b/FO/Controllers/AccountController.cs @@ -19,6 +19,11 @@ namespace NP.FO.Controllers { public class AccountController : FOOpenBaseController { + /// + /// ID/PW 찾기 + /// + /// + /// public ActionResult FindMe(VMUser vm) { vm.User = new Users() { }; @@ -989,9 +994,59 @@ namespace NP.FO.Controllers ViewBag.reason = reason; } return View(); - } + } #endregion + /// + /// 개인정보 변경안내(비밀번호 변경 90일 경과) + /// + /// + /// + public ActionResult PwChange(VMUser vm) + { + vm.User = new Users() { }; + if (SUserInfo.UserNo > 0) + { + vm.User = Dao.Get("users.pwuser", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); + if (vm.User == null) + { + vm.User = new Users() { }; + vm.userno = -1; + } + vm.userno = vm.User.userno; + } + return View(vm); + } + + /// + /// 휴면해제 안내 + /// + /// + public ActionResult DormantCancel() + { + ViewBag.UserNo = SUserInfo.UserNo; + // 에듀윌 소스 (사용여부 ??) + if (Request.Cookies.Get("RTNURL") != null) + { + var cookie = Request.Cookies.Get("RTNURL"); + ViewBag.RTNURL = cookie.Value; + //원래 마케팅용이어서 expire는 제외 + //cookie.Expires = DateTime.Now.AddDays(-1); + //Response.Cookies.Add(cookie); + } + + if (ViewBag.UserNo > 0) + { + //인증링크 클릭 확인 + Users User = Dao.Get("users.dormants", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); + if (User == null) + { + ViewBag.UserNo = -1; + } + } + return View(); + } + public ActionResult NaverCallback() { ViewBag.naverClientID = naverClientID; diff --git a/FO/Views/Account/IndexBase.cshtml b/FO/Views/Account/IndexBase.cshtml index fa35260..a1e4ea1 100644 --- a/FO/Views/Account/IndexBase.cshtml +++ b/FO/Views/Account/IndexBase.cshtml @@ -100,7 +100,22 @@ if (capResult.code == 1000) { if (capResult.obj == -1) { msg("고객사 사용자는 고객사사이트를 이용해주세요.", null, null, null, "location.href='https://" + capResult.msg + ".cte.or.kr/Account/Index'"); - } else { + } + else if (capResult.msg == "-2") { // 비밀번호 변경 90일 경과 + $("#mform").attr("action", "/Account/Pwchange"); + if ('@(Model.ru??"")' != "") { + $("#mform").attr("action", "@Model.ru".replace(/-/gi, '&')); + } + submit(); + } + else if (capResult.msg == "-3") { // 휴면해제안내 + $("#mform").attr("action", "/Account/DormantCancel"); + if ('@(Model.ru??"")' != "") { + $("#mform").attr("action", "@Model.ru".replace(/-/gi, '&')); + } + submit(); + } + else { $("#mform").attr("action", "/"); if ('@(Model.ru??"")' != "") { $("#mform").attr("action", "@Model.ru".replace(/-/gi, '&'));