19 if (typeof Debug ==
'undefined')
20 console.log(
'ERROR: Debug is undefined! Must include Debug.js before Desktop.js');
22 if (typeof Desktop ==
'undefined')
23 console.log(
'ERROR: Desktop is undefined! Must include Desktop.js before DesktopLogin.js');
31 Desktop.login =
function() {
32 if(
false === (
this instanceof Desktop.login)) {
35 return new Desktop.login();
42 var _DEFAULT_SESSION_STRING_LEN = 512;
43 var _DEFAULT_COOKIE_STRING_LEN = 512;
44 var _DEFAULT_COOKIE_DURATION_DAYS = 1;
45 var _DEFAULT_REMEMBER_ME_DURATION_DAYS = 30;
46 var _DEFAULT_PASSWORD_MIN_LEN = 4;
47 var _DEFAULT_PASSWORD_MAX_LEN = 50;
48 var _DEFAULT_USER_MIN_LEN = 4;
49 var _DEFAULT_USER_MAX_LEN = 50;
51 var _cookieCodeStr =
"otsCookieCode";
52 var _cookieUserStr =
"otsCookieUser";
53 var _cookieRememberMeStr =
"otsRememberMeUser";
54 var _BLACKOUT_COOKIE_STR =
"TEMPORARY_SYSTEM_BLACKOUT";
55 var _system_blackout =
false;
57 var _displayName =
"No-Login";
63 var _badSessionIdCount = 0;
65 var _areLoginInputsValid =
false;
66 var _killLogoutInfiniteLoop =
false;
67 var _keepFeedbackText =
false;
68 var _keptFeedbackText =
"";
73 var _userPref_bgColor, _userPref_dbColor, _userPref_winColor, _userPref_layout, _sysPref_layout;
74 var _applyUserPreferences;
75 var _updateCurrentLayoutTimeout = 0;
76 var _UPDATE_LAYOUT_TIMEOUT_PERIOD = 2000;
91 var _closeLoginPrompt =
function(isLoginSuccess) {
94 var ldiv = document.getElementById(
"Desktop-loginDiv");
97 Debug.log(
"found login div and deleted",Debug.LOW_PRIORITY);
98 ldiv.parentNode.removeChild(ldiv);
105 ldiv = document.getElementById(
"DesktopDashboard-user-displayName");
106 var tmpStr =
"Welcome to ots, " + _displayName;
108 if(ldiv.innerHTML !=
"" &&
109 ldiv.innerHTML != tmpStr)
112 Debug.log(
"Desktop.desktop.closeAllWindows() for new user",Debug.LOW_PRIORITY);
113 Desktop.desktop.closeAllWindows();
115 ldiv.innerHTML = tmpStr;
118 Desktop.desktop.resetDesktop(_permissions);
126 var _loginPrompt =
function() {
128 Debug.log(
"loginPrompt " + _keepFeedbackText,Debug.LOW_PRIORITY);
130 if(_attemptedCookieCheck)
134 if(document.getElementById(
"Desktop-loginDiv"))
136 Debug.log(
"Login screen already up.");
137 if(_keepFeedbackText)
139 document.getElementById(
"loginFeedbackDiv").innerHTML = _keptFeedbackText;
140 _keepFeedbackText =
false;
150 ldiv = document.createElement(
"div");
151 ldiv.setAttribute(
"id",
"Desktop-loginDiv");
152 ldiv.style.width = Desktop.desktop.getDesktopWidth() +
"px";
153 ldiv.style.height = Desktop.desktop.getDesktopHeight() +
"px";
157 str =
"<table width='100%' height='100%'><td valign='middle' align='center'>";
158 str +=
"<b><u>Welcome to ots!</u></b><br /><br />";
159 str +=
"<table><td align='right'><div id='Desktop-loginContent'></div></td></table></td></table>";
160 ldiv.innerHTML = str;
163 Desktop.desktop.login.loginDiv = _loginDiv = document.getElementById(
"DesktopLoginDiv");
170 _loginDiv.appendChild(ldiv);
173 ldiv = document.getElementById(
"Desktop-loginContent");
176 Debug.log(
"ldiv has no parent!");
181 var rememberMeName = _getCookie(_cookieRememberMeStr);
182 str +=
"Username: <input id='loginInput0' type='email' spellcheck='false' value='" +
183 (rememberMeName?rememberMeName:
"") +
"'/>";
185 str +=
"<div id='loginInputRememberMeDiv'>" +
186 "<div style='float:left; margin: -5px 0 0 89px;'><input type='checkbox' id='loginInputRememberMe' " +
187 (rememberMeName?
"checked":
"") +
" /></div>" +
188 "<div style='float: left; margin: -7px -50px 0px 6px;'><a href='#' onclick='var el=document.getElementById(\"loginInputRememberMe\"); el.checked = !el.checked;'>Remember me</a></div></div>";
189 str +=
"Password: <input id='loginInput1' type='password' /><br />";
190 str +=
"<div id='loginRetypeDiv' style='display:none' >Re-type Password: <input id='loginInput2' type='password' /><br /></div>";
191 str +=
"<div id='newAccountCodeDiv' style='display:none' >New Account Code: <input id='loginInput3' type='text' /><br /></div>";
192 str +=
"<a target='_blank' href='" +
193 "https://docs.google.com/document/d/1Mw4HByYfLo1bO5Hy9npDWkD4CFxa9xNsYZ5pJ7qwaTM/edit?usp=sharing" +
194 "' title='Click to open Help documentation' ><img src='/WebPath/images/dashboardImages/icon-Help.png'></a>";
195 str +=
"<a href='#' onmouseup='Desktop.desktop.login.promptNewUser(this); return false;' style='margin:0 100px 0 50px'>New User?</a>";
196 str +=
"<input type='submit' class='DesktopDashboard-button' value=' Login ' onmouseup='Desktop.desktop.login.attemptLogin();' /><br />"
198 str +=
"<div id='loginFeedbackDiv'>" + (_keepFeedbackText?_keptFeedbackText:
"") +
"</div>";
199 _keepFeedbackText =
false;
202 str +=
"<a href='http://www.google.com/chrome'>Note: ots works best in the Chrome web browser.</a>";
203 ldiv.innerHTML = str;
209 document.getElementById(
'loginInput1').focus();
211 document.getElementById(
'loginInput0').focus();
213 for(var i=0;i<4;++i) {
214 document.getElementById(
'loginInput'+i).onkeydown =
function(e) {
215 if(e.keyCode == 13) Desktop.desktop.login.attemptLogin();
216 else if(e.keyCode == 9) {
217 var newFocusIndex = parseInt(this.
id[this.
id.length-1])+(e.shiftKey?-1:1);
218 if(newFocusIndex != 0 && newFocusIndex != 1 &&
219 document.getElementById(
'loginRetypeDiv').style.display ==
"none")
220 newFocusIndex += e.shiftKey?2:-2;
221 newFocusIndex = (newFocusIndex + 4)%4;
222 document.getElementById(
'loginInput'+newFocusIndex).focus();
224 else if((e.keyCode >= 48 && e.keyCode <= 57) ||
225 (e.keyCode >= 96 && e.keyCode <= 105) ||
226 (e.keyCode >= 65 && e.keyCode <= 90) ||
227 e.keyCode == 46 || e.keyCode == 8 ||
228 e.keyCode == 35 || e.keyCode == 36 ||
229 (e.keyCode >= 37 && e.keyCode <= 40)) {
235 document.getElementById(
'loginInput'+i).onkeyup = _checkLoginInputs;
242 var _checkLoginInputs =
function() {
245 for(var i=0;i<3;++i) x[i] = document.getElementById(
'loginInput'+i).value;
247 document.getElementById(
'loginFeedbackDiv').style.color =
"";
248 if(document.getElementById(
'loginRetypeDiv').style.display !=
"none") {
250 _areLoginInputsValid =
false;
253 document.getElementById(
'loginFeedbackDiv').innerHTML =
"Passwords do not match";
return;
255 if(x[1].length < _DEFAULT_PASSWORD_MIN_LEN) {
256 document.getElementById(
'loginFeedbackDiv').innerHTML =
"Passwords must be at least " + _DEFAULT_PASSWORD_MIN_LEN +
" characters";
return;
258 if(x[1].length > _DEFAULT_PASSWORD_MAX_LEN) {
259 document.getElementById(
'loginFeedbackDiv').innerHTML =
"Passwords must be at most " + _DEFAULT_PASSWORD_MAX_LEN +
" characters";
return;
261 if(x[0].length < _DEFAULT_USER_MIN_LEN) {
262 document.getElementById(
'loginFeedbackDiv').innerHTML =
"User name must be at least " + _DEFAULT_USER_MIN_LEN +
" characters";
return;
264 if(x[0].length > _DEFAULT_USER_MAX_LEN) {
265 document.getElementById(
'loginFeedbackDiv').innerHTML =
"User name must be at most " + _DEFAULT_USER_MAX_LEN +
" characters";
return;
268 _areLoginInputsValid =
true;
269 document.getElementById(
'loginFeedbackDiv').innerHTML =
"Passwords are valid!";
270 document.getElementById(
'loginFeedbackDiv').style.color =
"RGB(100,255,150)";
278 var _setCookie =
function(code) {
280 if(code == _BLACKOUT_COOKIE_STR)
282 Debug.log(
"maintaining cookie code = " + _cookieCode);
284 var exdate =
new Date();
285 exdate.setDate(exdate.getDate() + _DEFAULT_COOKIE_DURATION_DAYS);
287 c_value = escape(code) + ((_DEFAULT_COOKIE_DURATION_DAYS==null) ?
"" :
"; expires="+exdate.toUTCString());
288 document.cookie= _cookieCodeStr +
"=" + c_value;
293 if(_user ==
"" || !code.length || code.length < 2)
return;
294 if(!_system_blackout && _cookieCode == code)
return;
297 var exdate =
new Date();
298 exdate.setDate(exdate.getDate() + _DEFAULT_COOKIE_DURATION_DAYS);
300 c_value = escape(code) + ((_DEFAULT_COOKIE_DURATION_DAYS==null) ?
"" :
"; expires="+exdate.toUTCString());
301 document.cookie= _cookieCodeStr +
"=" + c_value;
302 c_value = escape(_user) + ((_DEFAULT_COOKIE_DURATION_DAYS==null) ?
"" :
"; expires="+exdate.toUTCString());
303 document.cookie= _cookieUserStr +
"=" + c_value;
306 var ccdiv = document.getElementById(
"DesktopContent-cookieCodeMailbox");
307 ccdiv.innerHTML = _cookieCode;
308 ccdiv = document.getElementById(
"DesktopContent-updateTimeMailbox");
309 ccdiv.innerHTML = (
new Date()).getTime();
310 _cookieTime = parseInt(ccdiv.innerHTML);
315 var _getCookie =
function(c_name) {
316 var i,x,y,ARRcookies=document.cookie.split(
";");
317 for (i=0;i<ARRcookies.length;i++)
319 x=ARRcookies[i].substr(0,ARRcookies[i].indexOf(
"="));
320 y=ARRcookies[i].substr(ARRcookies[i].indexOf(
"=")+1);
321 x=x.replace(/^\s+|\s+$/g,
"");
331 var _deleteCookies =
function() {
333 Debug.log(
"Delete cookies",Debug.LOW_PRIORITY);
335 c_value =
"; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
336 document.cookie= _cookieCodeStr +
"=" + c_value;
337 c_value =
"; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
338 document.cookie= _cookieUserStr +
"=" + c_value;
343 var _getUniqueUserId =
function() {
344 return '4xxx'.replace(/[x]/g,
function(c) {
345 var r = Math.random()*16|0, v = r;
346 return v.toString(16);
354 var _checkCookieLogin =
function() {
355 if(_sessionId.length != _DEFAULT_SESSION_STRING_LEN)
return;
357 var code = _getCookie(_cookieCodeStr);
358 _user = _getCookie(_cookieUserStr);
360 if ((code != null && code !=
"") &&
361 (_user != null && _user !=
""))
363 Debug.log(
"Attempting browser cookie login.");
366 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=checkCookie",
367 "uuid="+_uid+
"&ju="+_jumble(_user,_sessionId)+
"&cc="+code,
372 Debug.log(
"No cookie found (" + code +
")",Debug.LOW_PRIORITY);
375 if(!_attemptedLoginWithCert)
377 Debug.log(
"Attempting CERT login.");
378 _attemptLoginWithCert();
389 var _handleLoginAttempt =
function(req) {
390 Debug.log(
"Received login attempt back",Debug.LOW_PRIORITY);
392 var cookieCode = Desktop.getXMLValue(req,
"CookieCode");
393 _displayName = Desktop.getXMLValue(req,
"DisplayName");
395 if(Desktop.desktop.security == Desktop.SECURITY_TYPE_NONE)
396 _user = Desktop.getXMLValue(req,
"pref_username");
397 _permissions = Desktop.getXMLValue(req,
"desktop_user_permissions");
398 if(cookieCode && _displayName && cookieCode.length == _DEFAULT_COOKIE_STRING_LEN)
401 Debug.log(
"Login Successful!",Debug.LOW_PRIORITY);
402 _setCookie(cookieCode);
403 _applyUserPreferences(req);
406 if (Desktop.getXMLValue(req,
"pref_username"))
407 _user = Desktop.getXMLValue(req,
"pref_username");
409 var activeSessionCount = parseInt(Desktop.getXMLValue(req,
"user_active_session_count"));
410 if(activeSessionCount && _loginDiv)
412 Debug.log(
"Found other active sessions: " + activeSessionCount,Debug.LOW_PRIORITY);
413 _offerActiveSessionOptions(activeSessionCount);
416 _closeLoginPrompt(1);
421 Desktop.desktopTooltip();
422 _attemptedCookieCheck =
false;
429 Debug.log(
"Login failed.");
435 if(cookieCode ==
"1")
436 _keptFeedbackText =
"Sorry, your login session was invalid.<br>" +
437 "A new session has been started - please try again.";
438 else if(req && document.getElementById(
'loginInput3') &&
439 document.getElementById(
'loginInput3').value !=
"")
440 _keptFeedbackText =
"New Account Code (or Username/Password) not valid.";
442 _keptFeedbackText =
"Username/Password not correct.";
444 _keptFeedbackText =
"ots Server failed.";
445 _keepFeedbackText =
true;
447 if(_attemptedLoginWithCert)
449 Debug.log(
"Hiding feedback after CERT attempt.");
450 _keepFeedbackText =
false;
453 for(var i=1;i<3;++i)
if(document.getElementById(
'loginInput'+i)) document.getElementById(
'loginInput'+i).value =
"";
456 _uid = _getUniqueUserId();
457 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=sessionId",
"uuid="+_uid,_handleGetSessionId);
465 var _attemptedCookieCheck =
false;
466 var _handleCookieCheck =
function(req) {
468 var cookieCode = Desktop.getXMLValue(req,
"CookieCode");
469 _displayName = Desktop.getXMLValue(req,
"DisplayName");
470 _permissions = Desktop.getXMLValue(req,
"desktop_user_permissions");
472 if(cookieCode && _displayName && cookieCode.length == _DEFAULT_COOKIE_STRING_LEN)
476 Debug.log(
"Cookie is good!",Debug.LOW_PRIORITY);
477 _setCookie(cookieCode);
478 _applyUserPreferences(req);
479 _closeLoginPrompt(1);
482 Desktop.desktopTooltip();
483 _attemptedCookieCheck =
false;
488 Debug.log(
"Cookie is bad " + cookieCode.length + _displayName,Debug.LOW_PRIORITY);
491 Debug.log(
"Attempting CERT login.");
492 _attemptLoginWithCert();
501 var _handleGetSessionId =
function(req) {
503 if(!req || req.responseText.length != _DEFAULT_SESSION_STRING_LEN) {
504 Debug.log(
"Invalid session ID",Debug.HIGH_PRIORITY);
509 _killLogoutInfiniteLoop =
true;
513 _uid = _getUniqueUserId();
515 Debug.log(
"UUID: " + _uid);
516 ++_badSessionIdCount;
517 if (_badSessionIdCount < 10)
518 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=sessionId",
"uuid="+_uid,_handleGetSessionId);
520 Desktop.log(
"Cannot establish session ID - failed 10 times",Desktop.HIGH_PRIORITY);
524 _badSessionIdCount = 0;
527 _sessionId = req.responseText;
532 if(!_attemptedCookieCheck &&
533 _getCookie(_cookieCodeStr) == _BLACKOUT_COOKIE_STR)
536 Debug.log(
"There is a system wide blackout! (Attempts to login right now may fail - likely someone is rebooting the system)", Debug.WARN_PRIORITY);
543 if(_attemptedCookieCheck)
545 Debug.log(
"Already tried browser cookie login. Giving up.");
549 _attemptedCookieCheck =
true;
551 Debug.log(
"Attempting browser cookie login with new session ID.");
553 _killLogoutInfiniteLoop =
false;
558 var _offerActiveSessionOptions =
function(cnt) {
560 ldiv = document.getElementById(
"Desktop-loginContent");
563 Debug.log(
"No login prompt, so not offering active session options.");
564 _closeLoginPrompt(1);
569 str +=
"<center>Warning! You currently have " + cnt +
" other active session" + (cnt > 1?
"s":
"") +
".<br />";
570 str +=
"<div id='loginFeedbackDiv'>You can opt to force logout the other session" + (cnt > 1?
"s":
"") +
", " +
571 "or alternatively leave your other session" + (cnt > 1?
"s":
"") +
" active and continue.</div><br />";
572 str +=
"<input type='submit' class='DesktopDashboard-button' value=' Logout Other Sessions ' " +
573 "onmouseup='Desktop.desktop.login.activeSessionLogoutOption();' />";
574 str +=
" ";
575 str +=
"<input type='submit' class='DesktopDashboard-button' value=' Ignore and Continue ' " +
576 "onmouseup='Desktop.desktop.login.activeSessionIgnoreOption();' /></center>";
577 ldiv.innerHTML = str;
580 var _jumble =
function (u,s) {
581 if(s.length%2)
return "";
586 var c = parseInt(s[p*2]+s[p*2+1],16);
587 for(var i=0;i<l;++i) x[i] = 0;
589 var s0 = s[p*2],s1 = s[p*2+1];
591 p = (p + parseInt(s0+s1,16)) % ss;
592 while(x[p]) p = (p+1) % ss;
593 x[p] = 1; s0 = s[p*2]; s1 = s[p*2+1];
594 c = (c + parseInt(s[p*2]+s[p*2+1],16) + parseInt((i==0)?u.length:u.charCodeAt(i-1))) % ss;
595 h = c.toString(16);
if(h.length == 1) h =
"0" + h;
596 s = s.substr(0,p*2) + h + s.substr(p*2+2,s.length-p*2-2);
597 --l;
if(i==u.length) i = 1;
else ++i;
602 var _saveUsernameCookie =
function () {
603 Debug.log(
"Desktop _saveUsernameCookie _user " + _user);
604 var exdate =
new Date();
605 exdate.setDate(exdate.getDate() + _DEFAULT_REMEMBER_ME_DURATION_DAYS);
607 c_value = escape(_user) + ((_DEFAULT_REMEMBER_ME_DURATION_DAYS==null) ?
"" :
"; expires="+exdate.toUTCString());
608 document.cookie= _cookieRememberMeStr +
"=" + c_value;
611 var _deleteUsernameCookie =
function () {
612 Debug.log(
"Desktop _deleteUsernameCookie _user " + _user);
614 c_value =
"; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
615 document.cookie= _cookieRememberMeStr +
"=" + c_value;
624 var _updateLayoutTimeoutHandler =
function() {
625 Debug.log(
"Desktop login _updateLayoutTimeoutHandler");
631 var colorFields = [
"bgcolor",
"dbcolor",
"wincolor"];
632 var colorPrefVals = [_userPref_bgColor,_userPref_dbColor,_userPref_winColor];
634 data += colorFields[j] +
"=" + colorPrefVals[j] +
"&";
638 var layoutArray = _userPref_layout.split(
";");
639 layoutArray[layoutArray.length-1] = Desktop.desktop.getWindowLayoutStr();
642 for(var j=0;j<layoutArray.length;++j)
643 layoutStr += layoutArray[j] + (j==layoutArray.length-1?
"":
";");
644 data +=
"layout=" + layoutStr +
"&";
648 layoutArray = _sysPref_layout.split(
";");
651 for(var j=0;j<layoutArray.length;++j)
652 layoutStr += layoutArray[j] + (j==layoutArray.length-1?
"":
";");
653 data +=
"syslayout=" + layoutStr +
"&";
658 Debug.log(
"Desktop Login Settings Save Preferences -- " + data);
659 Desktop.XMLHttpRequest(
"Request?RequestType=setSettings", data);
668 this.logout =
function() {
669 Debug.log(
"Desktop Logout occured " + _killLogoutInfiniteLoop,Debug.MED_PRIORITY);
671 if(_cookieCode && !_killLogoutInfiniteLoop)
672 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=logout");
676 if(!_killLogoutInfiniteLoop)
678 _uid = _getUniqueUserId();
679 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=sessionId",
"uuid="+_uid,_handleGetSessionId);
680 Debug.log(
"UUID: " + _uid)
683 _killLogoutInfiniteLoop =
false;
692 this.blackout =
function(setVal) {
693 setVal = setVal?
true:
false;
694 if(setVal == _system_blackout)
699 _setCookie(_BLACKOUT_COOKIE_STR);
703 _setCookie(_cookieCode);
706 _system_blackout = setVal;
707 Debug.log(
"Login blackout " + _system_blackout);
712 this.isBlackout =
function() {
713 var cc = _getCookie(_cookieCodeStr);
714 if(!cc)
return false;
716 return (cc == _BLACKOUT_COOKIE_STR);
724 this.getCookieCode =
function(doNotRefresh) {
727 if(this.isBlackout())
729 Debug.log(
"Found an external blackout signal.");
733 _setCookie(_cookieCode);
738 this.updateCookieFromContent =
function(newTime) {
739 _cookieTime = newTime;
740 var ccdiv = document.getElementById(
"DesktopContent-cookieCodeMailbox");
741 _setCookie(ccdiv.innerHTML);
744 this.getCookieTime =
function() {
return _cookieTime;}
745 this.getUserDisplayName =
function() {
return _displayName;}
746 this.getUsername =
function() {
return _user;}
748 this.redrawLogin =
function() {
749 var ldiv = document.getElementById(
"Desktop-loginDiv");
752 ldiv.style.width = Desktop.desktop.getDesktopWidth() +
"px";
753 ldiv.style.height = Desktop.desktop.getDesktopHeight() +
"px";
757 this.promptNewUser =
function(linkObj) {
758 document.getElementById(
'loginFeedbackDiv').innerHTML =
"";
759 Debug.log(
"Desktop Login Prompt New User",Debug.LOW_PRIORITY);
760 document.getElementById(
'loginRetypeDiv').style.display =
761 document.getElementById(
'loginRetypeDiv').style.display ==
"none"?
"inline":
"none";
762 document.getElementById(
'newAccountCodeDiv').style.display =
763 document.getElementById(
'newAccountCodeDiv').style.display ==
"none"?
"inline":
"none";
765 for(var i=1;i<4;++i) document.getElementById(
'loginInput'+i).value =
"";
767 linkObj.innerHTML = document.getElementById(
'loginRetypeDiv').style.display ==
"none"?
"New User?":
"Have an Account?";
770 this.attemptLogin =
function() {
771 Debug.log(
"Desktop Login Prompt Attempt Login ",Debug.LOW_PRIORITY);
772 _attemptedLoginWithCert =
false;
775 for(var i=0;i<3;++i) x[i] = document.getElementById(
'loginInput'+i).value;
777 if(document.getElementById(
'loginRetypeDiv').style.display !=
"none" && !_areLoginInputsValid) {
778 Debug.log(
"Invalid Inputs on new login attempt",Debug.LOW_PRIORITY);
return;
781 document.getElementById(
'loginFeedbackDiv').innerHTML =
"";
782 document.getElementById(
'loginFeedbackDiv').style.color =
"";
784 if(x[0] ==
"" || x[1] ==
"") {
785 document.getElementById(
'loginFeedbackDiv').innerHTML =
"Some fields were left empty.";
return;
790 if(document.getElementById(
'loginInputRememberMe').checked) _saveUsernameCookie();
791 else _deleteUsernameCookie();
793 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=login",
"uuid="+_uid+
"&nac="+document.getElementById(
'loginInput3').value
794 +
"&ju="+_jumble(x[0],_sessionId)+
"&jp="+_jumble(x[1],_sessionId),_handleLoginAttempt);
797 function getParameterByName(name, url) {
798 if (!url) url = window.location.href;
799 name = name.replace(/[\[\]]/g,
"\\$&");
800 var regex =
new RegExp(
"[?&]" + name +
"(=([^&#]*)|&|#|$)"),
801 results = regex.exec(url);
802 if (!results)
return null;
803 if (!results[2])
return '';
804 return decodeURIComponent(results[2].replace(/\+/g,
" "));
807 var _attemptedLoginWithCert =
false;
808 var _attemptLoginWithCert =
function () {
809 Debug.log(
"Desktop Login Certificate Attempt Login ", Debug.LOW_PRIORITY);
811 _attemptedLoginWithCert =
true;
812 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=cert",
"uuid=" + _uid, _handleLoginAttempt);
818 _applyUserPreferences = this.applyUserPreferences =
function(req) {
820 if (typeof req !=
'undefined') {
822 _userPref_bgColor = Desktop.getXMLValue(req,
"pref_bgcolor");
823 _userPref_dbColor = Desktop.getXMLValue(req,
"pref_dbcolor");
824 _userPref_winColor = Desktop.getXMLValue(req,
"pref_wincolor");
825 _userPref_layout = Desktop.getXMLValue(req,
"pref_layout");
826 _sysPref_layout = Desktop.getXMLValue(req,
"pref_syslayout");
829 Desktop.desktop.dashboard.setDefaultDashboardColor(_userPref_dbColor);
830 Desktop.desktop.setDefaultWindowColor(_userPref_winColor);
831 document.body.style.backgroundColor = _userPref_bgColor;
840 this.resetCurrentLayoutUpdateTimer =
function() {
844 if(_updateCurrentLayoutTimeout)
845 clearTimeout(_updateCurrentLayoutTimeout);
846 _updateCurrentLayoutTimeout = setTimeout(_updateLayoutTimeoutHandler,_UPDATE_LAYOUT_TIMEOUT_PERIOD);
849 this.getUserDefaultLayout =
function(i) {
return _userPref_layout.split(
";")[i]; }
850 this.getSystemDefaultLayout =
function(i) {
return _sysPref_layout.split(
";")[i]; }
852 this.activeSessionLogoutOption =
function() {
853 Debug.log(
"Desktop login activeSessionLogoutOption");
854 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=logout",
"LogoutOthers=1");
855 _closeLoginPrompt(1);
858 this.activeSessionIgnoreOption =
function() {
859 Debug.log(
"Desktop activeSessionIgnoreOption");
860 _closeLoginPrompt(1);
878 this.setupLogin =
function()
880 _uid = _getUniqueUserId();
881 if(Desktop.desktop.security == Desktop.SECURITY_TYPE_DIGEST_ACCESS)
883 this.loginDiv = _loginDiv = document.createElement(
"div");
884 _loginDiv.setAttribute(
"id",
"DesktopLoginDiv");
885 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=sessionId",
886 "uuid="+_uid,_handleGetSessionId);
888 else if(Desktop.desktop.security == Desktop.SECURITY_TYPE_NONE)
889 Desktop.XMLHttpRequest(
"LoginRequest?RequestType=login",
"uuid="+_uid,_handleLoginAttempt);
892 Debug.log(
"UUID: " + _uid);
896 Debug.log(
"Desktop Login created",Debug.LOW_PRIORITY);