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");