학습인증수단 추가

"동영상 학습 본인인증방식 변경
- 강좌별 학습 본인인증이 아닌, 회차별 학습 본인인증으로 변경"
This commit is contained in:
lch 2021-06-08 09:30:02 +00:00
parent 52c5616da8
commit 19ad5757c8
17 changed files with 242 additions and 65 deletions

View File

@ -159,7 +159,7 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("cr.lectsdboardcmt.del", new Hashtable() { { "bcno", bcno }, { "cno", SUserInfo.UserNo }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
}
[HttpPost]
public JsonResult AttCertCheck(int lectno)
public JsonResult AttCertCheck(long lectno)
{
var data = Dao.Get<Data>("lect.attcert.check", new Hashtable() { { "lectno", lectno } }).FirstOrDefault();
if (data.intval2 == 1 || data.intval3 == 1)
@ -183,6 +183,34 @@ namespace NP.Base.Controllers
}
}
[HttpPost]
public JsonResult AttCertCheckForLectinning(long lectno, long cmino)
{
var data = Dao.Get<Data>("lect.lectinning.attcert.check", new Hashtable() { { "lectno", lectno }, { "cmino", cmino }, {"userno", SUserInfo.UserNo } }).FirstOrDefault();
if (data.intval2 == 1 || data.intval3 == 1)
{
//intval2 출석인증제외 회원, intval3 출석인증제외 강좌
return JsonBack(new JsonRtn() { code = 1000, obj = 1 });
}
else
{
//출석인증
if (data.intval == 1)
{
return JsonBack(new JsonRtn() { code = 1000, obj = 2 });
}
//핸드폰인증인데 핸드폰번호가 없는경우(에러)
if ( string.IsNullOrEmpty(data.strval) && data.strval2 == "2")
{
return JsonBack(new JsonRtn() { code = -1 });
}
else
{
//data.strval2 <- authplatform 1:IPIN, 2:Mobile
return JsonBack(new JsonRtn() { code = 1000, obj = 3, msg = data.strval2 });
}
}
}
[HttpPost]
public JsonResult LectComplete(Int64 lectno)
{
var ispass = Dao.Get<Lect>("grade.ispass", new Hashtable() { { "lectno", lectno } } ).FirstOrDefault().ispass;

View File

@ -555,12 +555,44 @@ namespace NP.Base.Controllers
}
else if (datas.Where(w => w.strval.Replace(" ", "").Equals(lakey.Replace(" ", "")) && w.time.AddMinutes(3) >= DateTime.Now).Count() > 0)
{
Dao.Save("lect.isatt.in", new System.Collections.Hashtable() { { "lectno", datas.FirstOrDefault().intval2 }, { "lakey", datas.FirstOrDefault().strval } });
return JsonBack(new JsonRtn() { code = 1000, obj = datas.First() });
Dao.Save("lect.isatt.in", new System.Collections.Hashtable() { { "lectno", datas.FirstOrDefault().intval2 }, { "lakey", datas.FirstOrDefault().strval } });
return JsonBack(new JsonRtn() { code = 1000, obj = datas.First() });
}
return JsonOK(0);
}
[HttpPost]
public JsonResult ChkLakeyForLectinning(String lakey, int authno, long cmino)
{
IList<Data> datas = Dao.Get<Data>("common.sms.chk", new Hashtable() { { "authno", authno } });
if (datas.Count() < 1)
{
return JsonOK(0);
}
else if (datas.Where(w => w.strval.Replace(" ", "").Equals(lakey.Replace(" ", "")) && w.time.AddMinutes(3) < DateTime.Now).Count() > 0)
{
return JsonBack(new JsonRtn() { code = 1 });
}
else if (datas.Where(w => w.strval.Replace(" ", "").Equals(lakey.Replace(" ", "")) && w.time.AddMinutes(3) >= DateTime.Now).Count() > 0)
{
var lectno = datas.FirstOrDefault().intval2;
var lectInnings = Dao.Get<LectInning>("cr.cminnings", new System.Collections.Hashtable() { { "lectno", lectno }, { "userno", SUserInfo.UserNo } });
if (lectInnings.Where(w => w.cmino == cmino).Count() > 0)
{
var Hashtable = new System.Collections.Hashtable() {
{ "lectno", lectno },
{ "cmino", cmino },
{ "isattcheck", 1 },
{ "userno", SUserInfo.UserNo },
{ "uno", SUserInfo.UserNo },
{ "uip", GetUserIP() }
};
Dao.Save("lect.lectinning.isatt.in", Hashtable);
return JsonBack(new JsonRtn() { code = 1000, obj = datas.First() });
}
}
return JsonOK(0);
}
[HttpPost]
public JsonResult PageLearningTotalTime(Int64 lectno, Int64 cmino, int cpno)
{
if (SUserInfo.UserNo > 0)

View File

@ -1071,7 +1071,7 @@ create table lectinning (
,pseq tinyint not null default 1
,psec smallint
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
,isauth TINYINT(4) NOT NULL DEFAULT 0,
,isattcheck TINYINT(4) NOT NULL DEFAULT 0,
,primary key(lectno,cmino));
create table lectinningpage (

View File

@ -1499,6 +1499,16 @@
inner join cm c on c.cmno = a.cmno
where a.lectno = #lectno#
</select>
<select id="lect.lectinning.attcert.check" parameterClass="hashtable" resultClass="data">
select ifnull(d.isattcheck,0) intval,b.ischkatt intval2,c.ischkatt intval3
,CAST(AES_DECRYPT(UNHEX(b.mobile), <include refid="sql.digest"></include>) AS char) strval
,b.authplatform strval2
from lect a
inner join users b on b.userno = a.userno
inner join cm c on c.cmno = a.cmno
left outer join lectinning d on d.lectno = a.lectno and d.cmino = #cmino#
where a.lectno = #lectno# and a.userno = #userno#
</select>
<select id="lect.lecture.document" parameterClass="hashtable" resultClass="lect">
select a.*
from (
@ -1583,7 +1593,19 @@
latime = now()
where lectno = #lectno#
</update>
<update id="lect.lectinning.isatt.in" parameterClass="hashtable">
update lectinning a
inner join lect b on b.lectno=a.lectno and b.userno=#userno#
set a.isattcheck = #isattcheck#,a.udt=now(),a.uno=#uno#,a.uip=#uip#
where a.lectno=#lectno# and a.cmino=#cmino#;
insert into lectinning (lectno,cmino,totstudy,stime,etime,istatus,finishtime,sip,eip,ispcs,ispce,pseq,psec,isattcheck,<include refid="sql.inc"></include>)
select #lectno#,a.cmino,0,now(),now(),case when a.atime=0 then 2 else 0 end,case when a.atime=0 then now() else null end,#uip#,#uip#,1,null,ctp.pseq,0,#isattcheck#,<include refid="sql.inv"></include>
from cminning a
inner join ctpage ctp on ctp.ctno=a.ctno and ctp.isdel=0 and ctp.pseq=1
left outer join lectinning b on b.lectno=#lectno# and b.cmino=#cmino#
where a.cmino=#cmino# and b.lectno is null;
</update>
<update id="lect.cmisno.up" parameterClass="hashtable">
update lect
set cmisno = #cmisno#

View File

@ -474,7 +474,7 @@ namespace NP.FO.Controllers
/// </summary>
/// <param name="sel"></param>
/// <returns></returns>
public ActionResult CertOk3Req(String sel, String reason)
public ActionResult CertOk3Req(String sel, String reason, String param1, String param2)
{
String CP_CD = "V47690000000";
String SITE_NAME = "YNICTE";
@ -506,8 +506,8 @@ namespace NP.FO.Controllers
ViewBag.PopupUrl = "";
//return url 설정
RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason;
RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason;
RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "&param1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "&param2=" + param2 : "");
RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "&param1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "&param2=" + param2 : "");
//모바일팝업
if (sel == "MOBI" || sel == "MCHK")
{
@ -576,7 +576,7 @@ namespace NP.FO.Controllers
/// 휴대폰인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3MOBI(string reason)
public ActionResult CertOk3MOBI(string reason, String param1, String param2)
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
@ -704,7 +704,7 @@ namespace NP.FO.Controllers
+ DI + ":" + CI + ":" + CI_UPDATE + ":" + TEL_COM_CD + ":"
+ TEL_NO + ":" + RETURN_MSG;
Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "mobile", TEL_NO }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } });
ViewBag.reason = reason;
ViewBag.reason = reason;
}
return View();
}
@ -715,7 +715,7 @@ namespace NP.FO.Controllers
/// IPIN인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3IPIN(string reason)
public ActionResult CertOk3IPIN(string reason, string param1, string param2)
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
@ -811,7 +811,51 @@ namespace NP.FO.Controllers
}
else if (reason == "LectinningAuth")
{
if (SUserInfo.UserNo > 0)
{
if(long.TryParse(param1, out long lectno))
{
if (long.TryParse(param2, out long cmino))
{
var lectInnings = Dao.Get<LectInning>("cr.cminnings", new System.Collections.Hashtable() { { "lectno", lectno }, { "userno", SUserInfo.UserNo } });
if (lectInnings.Where(w => w.cmino == cmino).Count() > 0)
{
var Hashtable = new System.Collections.Hashtable() {
{ "lectno", lectno },
{ "cmino", cmino },
{ "isattcheck", 1 },
{ "userno", SUserInfo.UserNo },
{ "uno", SUserInfo.UserNo },
{ "uip", GetUserIP() }
};
Dao.Save("lect.lectinning.isatt.in", Hashtable);
ViewBag.lectno = lectno;
ViewBag.cmino = cmino;
}
else
{
RSLT_CD = "U998";
RSLT_MSG = "cmino 에러";
}
}
else
{
RSLT_CD = "U998";
RSLT_MSG = "cmino 에러";
}
}
else
{
RSLT_CD = "U998";
RSLT_MSG = "lectno 에러";
}
}
else
{
RSLT_CD = "U999";
RSLT_MSG = "비로그인";
}
}
}
else
@ -828,7 +872,7 @@ namespace NP.FO.Controllers
+ RETURN_MSG;
//vm.stringval = "CP_CD:" + CP_CD + "&RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG;
Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "vssn", VSSN }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } });
ViewBag.reason = reason;
ViewBag.reason = reason;
}
return View();
}

View File

@ -6,6 +6,8 @@ using System.Web.Mvc;
using NP.Model;
using NP.Base;
using System.Collections;
namespace NP.FO.Controllers
{
public class CDMSController : FOOpenBaseController
@ -77,44 +79,58 @@ namespace NP.FO.Controllers
vm = vm ?? new VMCRoom() { };
if (SUserInfo.UserNo > 0 && vm.cmino > 0 && vm.lectno > 0)
{
//이어보기를 위해 페이지관리
//vm.pseq = vm.pseq < 1 ? 1 : vm.pseq;
vm.pseq = 0;
//학습로그생성
String ua = "";
try
var data = Dao.Get<Data>("lect.lectinning.attcert.check", new Hashtable() { { "lectno", vm.lectno }, { "cmino", vm.cmino }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
//intval 회차intval2 출석인증제외 회원, intval3 출석인증제외 강좌
if (data != null && (data.intval == 1 || data.intval2 == 1 || data.intval3 == 1))
{
ua = (Request.UserAgent ?? "").ToLower();
}
catch (Exception ex)
{
Logger.Error("ExamStart Get UserAgent Info Error" + ex.StackTrace);
}
vm.lip = new LectInningPage() { lectno = vm.lectno, cmino = vm.cmino, pseq = vm.pseq, userno = SUserInfo.UserNo,
isrelay = 1,
uno = SUserInfo.UserNo, uip = GetUserIP(), ispc = vm.ismobile==1?0:1, webkitinfo = ua.Length > 500 ? ua.Substring(0, 500) : ua };
Dao.Insert("cr.lectinningpage.in", vm.lip);
if (vm.lip.logno > 0)
{
vm.status = 1;
vm.Pages = Dao.Get<LectInningPage, CTPage>("cr.ctps", vm.lip);
vm.pseq = vm.Pages.First().lastpseq;
vm.Page = vm.Pages.Where(w => w.pseq == vm.pseq).First();
vm.CMInning = new CMInning() { isokmid = vm.Page.isokmid, ismenu = vm.Page.ismenu, iseq = vm.Page.iseq, ititle = vm.Page.ititle, ctype = vm.Page.ctype, ccode = vm.Page.ccode, isoversize = vm.Page.isoversize, mstime = vm.Page.mstime, metime = vm.Page.metime };
if (vm.CMInning.isokmid == 0 && vm.CMInning.metime > 0)
//이어보기를 위해 페이지관리
//vm.pseq = vm.pseq < 1 ? 1 : vm.pseq;
vm.pseq = 0;
//학습로그생성
String ua = "";
try
{
//if (Request.IsLocal || GetConfig("isdevtest")=="1")
//{
// vm.CMInning.mtime = 10;
//}
//else
//{
ua = (Request.UserAgent ?? "").ToLower();
}
catch (Exception ex)
{
Logger.Error("ExamStart Get UserAgent Info Error" + ex.StackTrace);
}
vm.lip = new LectInningPage()
{
lectno = vm.lectno,
cmino = vm.cmino,
pseq = vm.pseq,
userno = SUserInfo.UserNo,
isrelay = 1,
uno = SUserInfo.UserNo,
uip = GetUserIP(),
ispc = vm.ismobile == 1 ? 0 : 1,
webkitinfo = ua.Length > 500 ? ua.Substring(0, 500) : ua
};
Dao.Insert("cr.lectinningpage.in", vm.lip);
if (vm.lip.logno > 0)
{
vm.status = 1;
vm.Pages = Dao.Get<LectInningPage, CTPage>("cr.ctps", vm.lip);
vm.pseq = vm.Pages.First().lastpseq;
vm.Page = vm.Pages.Where(w => w.pseq == vm.pseq).First();
vm.CMInning = new CMInning() { isokmid = vm.Page.isokmid, ismenu = vm.Page.ismenu, iseq = vm.Page.iseq, ititle = vm.Page.ititle, ctype = vm.Page.ctype, ccode = vm.Page.ccode, isoversize = vm.Page.isoversize, mstime = vm.Page.mstime, metime = vm.Page.metime };
if (vm.CMInning.isokmid == 0 && vm.CMInning.metime > 0)
{
//if (Request.IsLocal || GetConfig("isdevtest")=="1")
//{
// vm.CMInning.mtime = 10;
//}
//else
//{
Random r = new Random();
vm.CMInning.mtime = r.Next(vm.CMInning.mstime * 60, vm.CMInning.metime * 60);
vm.CMInning.mtime = vm.CMInning.mtime < 10 ? 15 : vm.CMInning.mtime;
//}
//}
}
}
}
}
}
//Response.AddHeader("X-Frame-Options", "ALLOW-FROM http://www.kocw.net");
//Response.Headers.Remove("X-Frame-Options");

View File

@ -274,5 +274,12 @@ namespace NP.FO.Controllers
vm.BoardCMTs = Dao.Get<BoardCMT>("cr.lectsdboardcmt", vm.LectSDBoard.bno);
return CView(vm);
}
public ActionResult Open(long croomlectno, long cmino)
{
ViewBag.lectno = croomlectno;
ViewBag.cmino = cmino;
return View(vm);
}
}
}

View File

@ -717,6 +717,7 @@
<Content Include="Views\Home\PrivacyPolicy.cshtml" />
<Content Include="Views\Home\UsePolicy.cshtml" />
<Content Include="Views\Course\ApplyAgree.cshtml" />
<Content Include="Views\CRoom\Open.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />

View File

@ -16,7 +16,7 @@
var RETURN_MSG = (ViewBag.result ?? "").Split(':')[12];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<script src="~/js/site.js"></script>
<div>
</div>
@ -55,7 +55,8 @@
</text>
} else if (ViewBag.reason == "LectinningAuth") {
<text>
self.close();
alert("인증완료");
location.href = "/CRoom/Open?croomlectno=@(ViewBag.lectno)&cmino=@(ViewBag.cmino)";
</text>
}
} else {

View File

@ -21,14 +21,14 @@
<div class="jnsCont">
<img src="../img/common/join_select01.png" alt="i-PIN 인증">
<p>i-PIN 인증</p>
<a href="#" onclick="mobilechkview('IPIN', 'Join');">인증하기</a>
<a href="#" onclick="certok3reqview('IPIN', 'Join');">인증하기</a>
</div>
</div>
<div>
<div class="jnsCont">
<img src="../img/common/join_select02.png" alt="휴대폰 본인인증">
<p>휴대폰 본인인증</p>
<a href="#" onclick="mobilechkview('MOBI', 'Join');">인증하기</a>
<a href="#" onclick="certok3reqview('MOBI', 'Join');">인증하기</a>
</div>
</div>
@*<div>

View File

@ -154,12 +154,14 @@
</div>
@Html.Partial("./Partial/MobileChk", null, new ViewDataDictionary { { "bindmethod", "cbchkmobile" } })
@Html.Partial("./Partial/OkCert3", null, new ViewDataDictionary { })
@section scriptsHeader{
}
@section scripts{
<script>
var _cmino = 0;
var _authplatform = 0;
$(document).ready(function () {
});
@ -177,7 +179,7 @@
}
}
function chkcontent() {
capp("/fcommon/attcertcheck", {lectno : @Model.croomlectno}, "cbchkcontent");
capp("/fcommon/attcertcheckforlectinning", {lectno : @Model.croomlectno, cmino : _cmino}, "cbchkcontent");
}
function cbchkcontent() {
if (capResult.code == 1000) {
@ -186,15 +188,21 @@
} else if (capResult.obj == 2) {
viewcontents(_cmino, false,@Model.croomlectno);
} else {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","chkmobile()");
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","showpop()");
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","mobilechkview('MOBI')");
_authplatform = capResult.msg;
if (_authplatform == "1") {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkipin()");
}else if(_authplatform == "2") {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkmobile()");
}
}
} else {
msg("휴대폰 번호가 공란입니다.<br/>정보수정을 통해 번호를 입력해주세요.");
}
}
function chkipin() {
certok3reqview('IPIN', 'LectinningAuth', @Model.croomlectno, _cmino);
bglayer(false);
}
function chkmobile() {
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
setv("mobile", formatmobile(val("mobile")));

View File

@ -132,6 +132,7 @@
</div>
</div>
@Html.Partial("./Partial/MobileChk", null, new ViewDataDictionary { { "bindmethod", "cbchkmobile" } })
@Html.Partial("./Partial/OkCert3", null, new ViewDataDictionary { })
@section scriptsHeader{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
@ -139,6 +140,7 @@
@section scripts{
<script>
var _cmino = 0;
var _authplatform = 0;
$(document).ready(function () {
$("body").on("click", ".atdOpen", function () {
var atdNum = $(this).attr('atdOpen');
@ -168,7 +170,7 @@
}
}
function chkcontent() {
capp("/fcommon/attcertcheck", {lectno : @Model.croomlectno}, "cbchkcontent");
capp("/fcommon/attcertcheckforlectinning", {lectno : @Model.croomlectno, cmino : _cmino}, "cbchkcontent");
}
function cbchkcontent() {
if (capResult.code == 1000) {
@ -177,15 +179,21 @@
} else if (capResult.obj == 2) {
viewcontents(_cmino, false,@Model.croomlectno);
} else {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","chkmobile()");
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","showpop()");
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","mobilechkview('MOBI')");
_authplatform = capResult.msg;
if (_authplatform == "1") {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkipin()");
}else if(_authplatform == "2") {
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkmobile()");
}
}
} else {
msg("휴대폰 번호가 공란입니다.<br/>정보수정을 통해 번호를 입력해주세요.");
}
}
function chkipin() {
certok3reqview('IPIN', 'LectinningAuth', @Model.croomlectno, _cmino);
bglayer(false);
}
function chkmobile() {
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
setv("mobile", formatmobile(val("mobile")));

View File

@ -0,0 +1,10 @@
@{
Layout = null;
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
opener.viewcontents("@(ViewBag.cmino)", false, "@(ViewBag.lectno)");
self.close();
});
</script>

View File

@ -89,10 +89,10 @@
<div class="mdfyBirth">
<input type="hidden" name="authplatform" id="authplatform" value="@(u.authplatform.GetHashCode())" />
<div id="authPlatform_IPIN" @(u.authplatform == AuthPlatform.Mobile ? "style=display:none;" : "")>
<p id="authPlatformName">I-PIN 인증</p><a href="#" onclick="mobilechkview('MOBI', 'AuthPlatformChange');" style="width:150px;">휴대폰 인증으로 변경</a>
<p id="authPlatformName">I-PIN 인증</p><a href="#" onclick="certok3reqview('MOBI', 'AuthPlatformChange');" style="width:150px;">휴대폰 인증으로 변경</a>
</div>
<div id="authPlatform_Mobile" @(u.authplatform == AuthPlatform.IPIN ? "style=display:none;" : "") >
<p id="authPlatformName">휴대폰 인증</p><a href="#" onclick="mobilechkview('IPIN', 'AuthPlatformChange');" style="width:150px;">I-PIN 인증으로 변경</a>
<p id="authPlatformName">휴대폰 인증</p><a href="#" onclick="certok3reqview('IPIN', 'AuthPlatformChange');" style="width:150px;">I-PIN 인증으로 변경</a>
</div>
</div>
</td>
@ -104,7 +104,7 @@
@if(u.authplatform == AuthPlatform.Mobile)
{
<input type="hidden" name="mobile" id="mobile" value="@(u.mobile)" />
<p id="mobilestr">@(u.mobile)</p><a href="#" onclick="mobilechkview('MOBI', 'MobileNumberChange');">수정</a>
<p id="mobilestr">@(u.mobile)</p><a href="#" onclick="certok3reqview('MOBI', 'MobileNumberChange');">수정</a>
}
else
{

View File

@ -96,6 +96,6 @@
}
}
function chklakey() {
capp("/focommon/chklakey", { lakey: $("#mobile_lakey").val(), authno: authno }, "@(_method)");
capp("/focommon/chklakeyforlectinning", { lakey: $("#mobile_lakey").val(), authno: authno, cmino:_cmino }, "@(_method)");
}
</script>

View File

@ -17,8 +17,8 @@
var pop;
$(document).ready(function () {
});
function mobilechkview(sel, reason) {
var popupWindow = window.open("/Account/CertOk3Req?sel=" + sel + "&reason=" + reason, "auth_popup", "width=450,height=640,scrollbar=yes,resizable=no");
function certok3reqview(sel, reason, param1, param2) {
var popupWindow = window.open("/Account/CertOk3Req?sel=" + sel + "&reason=" + reason + (param1 ? "&param1=" + param1 : "") + (param2 ? "&param2=" + param2 : ""), "auth_popup", "width=450,height=640,scrollbar=yes,resizable=no");
popupWindow.focus();
}
</script>

View File

@ -2960,9 +2960,9 @@ namespace NP.Model
public String existslectinning { get; set; }
public String cname { get; set; }
/// <summary>
/// 학습인증여부 (0:미인증,1:인증)
/// 출석인증여부 (0:미인증,1:인증)
/// </summary>
public int isauth { get; set; }
public int isattcheck { get; set; }
}
[Serializable]