console.warn("mkvn identity API: Session is null or could not be resolved on kucweb02.kings.kucits.ca"); var mkvnAuth = { serverName : "kucweb02.kings.kucits.ca", serverNameProdStaff : "kucweb02.kings.kucits.ca", serverNameProdStudent : "kucweb02.kings.kucits.ca", urlRedirect : "https://SYSTEMSERVER/mkvn-login/", urlRedirectLegacy : "https://SYSTEMSERVER/cgi-bin/mkvn/app.pl?SESSIONTYPE&u=kucweb02.kings.kucits.camkvn-auth" }; mkvnAuth.ProductionEnvironment = function () { let re = /(tomo|rach)/i; var isDev = re.test(this.serverName); var isProd = isDev == true ? false : true; return isProd; }; mkvnAuth.ResolveRedirect = function (context) { var isProduction = this.ProductionEnvironment(); var urlRedirect = this.urlRedirect; var systemServer; context = context.toLowerCase(); if (isProduction) { systemServer = context === "student" ? this.serverNameProdStudent : this.serverNameProdStaff; } else { systemServer = this.serverName; } urlRedirect = urlRedirect.replace("SYSTEMSERVER", systemServer); urlRedirect = urlRedirect.replace("SESSIONTYPE", context); return urlRedirect; }; mkvnAuth.RedirectStaff = function () { window.location.href = this.ResolveRedirect("staff"); } mkvnAuth.RedirectStudent = function () { window.location.href = this.ResolveRedirect("student"); } console.info("mkvn identity API: mkvnAuth script render complete"); const body = document.getElementsByTagName("BODY")[0]; const server = "kucweb02.kings.kucits.ca"; let url = window.location.href; let user = { department: "", emplID: "", id: "", cn: "", kcarsID: "", un: "" }; // Ensure https redirection url = url.replace(/^http:\/\//i, 'https://'); // Auth check if (!(atob(user.id))) { var content = `

Authentication Required

Authentication through the myKing's Student Portal is required to access this form. If you are a new student and have not yet activated your Western identity, please visit the Activating Your Western Identity page.
`; body.innerHTML = content; } else { // Role handler if ((atob(user.department)).match(/^student$/i)) { let studentID = user.kcarsID || user.emplID; studentID = atob(studentID); // Resolve student number based on birthday if (!studentID) { // Return unresolved setUnresolved(); } else { if ((atob(user.id)) && !studentID) { setUnresolved(); } else { setStudentNumber(studentID); } clearUser(); } } else { // TODO: Staff experience... console.log("MyKing's staff authentication success!"); setUsername(user.un); } } function clearUser() { user = null; } function setStudentNumber(emplID) { // // Field inputs // var studentNumber = $('[attr=Student_Number]').find(':input')[0]; // // Dynamically fill form // studentNumber.readOnly = true; // studentNumber.focus(); // studentNumber.value = emplID; // Field inputs var studentNumber = $('[attr=Student_Number] input'); // Dynamically fill form if (studentNumber) { studentNumber.val(emplID).change(); studentNumber.attr('readOnly', true); } } function setUnresolved() { var content = `

Unresolved Student Number

We're sorry! We were unable to resolve your student number at this time. A support ticket has been created automatically on your behalf. We will investigate the issue and follow up with you.
`; body.innerHTML = content; } function setUsername(un) { // Field inputs var refUsername = $('[attr=username] input'); // Dynamically fill form if (refUsername) { refUsername.val(atob(un)).change(); refUsername.attr('readOnly', true); } } console.info("mkvn identity API: Script response render complete");