author | Dan |
Sat, 14 Mar 2009 14:06:02 -0400 | |
changeset 857 | f3a5a276208c |
parent 843 | 4415e50e4e84 |
child 883 | ac2cef868fa9 |
permissions | -rw-r--r-- |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1 |
/* |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
2 |
* AJAX-based intelligent login interface |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
3 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
4 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
5 |
/* |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
6 |
* FRONTEND |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
7 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
8 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
9 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
10 |
* Performs a logon as a regular member. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
11 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
12 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
13 |
window.ajaxLogonToMember = function() |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
14 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
15 |
// IE <6 pseudo-compatibility |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
16 |
if ( KILL_SWITCH ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
17 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
18 |
if ( auth_level >= USER_LEVEL_MEMBER ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
19 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
20 |
ajaxLoginInit(function(k) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
21 |
{ |
741 | 22 |
if ( on_main_page ) |
23 |
{ |
|
24 |
window.location = makeUrl(main_page_members); |
|
25 |
} |
|
26 |
else |
|
27 |
{ |
|
28 |
window.location.reload(); |
|
29 |
} |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
30 |
}, USER_LEVEL_MEMBER); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
31 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
32 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
33 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
34 |
* Authenticates to the highest level the current user is allowed to go to. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
35 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
36 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
37 |
window.ajaxLogonToElev = function() |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
38 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
39 |
if ( auth_level == user_level ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
40 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
41 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
42 |
ajaxLoginInit(function(k) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
43 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
44 |
ENANO_SID = k; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
45 |
var url = String(' ' + window.location).substr(1); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
46 |
url = append_sid(url); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
47 |
window.location = url; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
48 |
}, user_level); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
49 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
50 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
51 |
/* |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
52 |
* BACKEND |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
53 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
54 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
55 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
56 |
* Holding object for various AJAX authentication information. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
57 |
* @var object |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
58 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
59 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
60 |
var logindata = {}; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
61 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
62 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
63 |
* Path to the image used to indicate loading progress |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
64 |
* @var string |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
65 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
66 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
67 |
if ( !ajax_login_loadimg_path ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
68 |
var ajax_login_loadimg_path = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
69 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
70 |
if ( !ajax_login_successimg_path ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
71 |
var ajax_login_successimg_path = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
72 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
73 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
74 |
* Status variables |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
75 |
* @var int |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
76 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
77 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
78 |
var AJAX_STATUS_LOADING_KEY = 1; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
79 |
var AJAX_STATUS_GENERATING_KEY = 2; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
80 |
var AJAX_STATUS_LOGGING_IN = 3; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
81 |
var AJAX_STATUS_SUCCESS = 4; |
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
82 |
var AJAX_STATUS_ERROR = 5; |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
83 |
var AJAX_STATUS_DESTROY = 65535; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
84 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
85 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
86 |
* State constants |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
87 |
* @var int |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
88 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
89 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
90 |
var AJAX_STATE_EARLY_INIT = 1; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
91 |
var AJAX_STATE_LOADING_KEY = 2; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
92 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
93 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
94 |
* Performs the AJAX request to get an encryption key and from there spawns the login form. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
95 |
* @param function The function that will be called once authentication completes successfully. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
96 |
* @param int The security level to authenticate at - see http://docs.enanocms.org/Help:Appendix_B |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
97 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
98 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
99 |
window.ajaxLoginInit = function(call_on_finish, user_level) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
100 |
{ |
780
f65e35566b63
A few fixes to the most recently added feature: more efficiency tweaks, tweaked l10n to have beetter fetch-on-demand support to ensure that stubs are never returned
Dan
parents:
779
diff
changeset
|
101 |
load_component(['messagebox', 'flyin', 'fadefilter', 'jquery', 'jquery-ui', 'l10n', 'crypto']); |
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
102 |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
103 |
logindata = {}; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
104 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
105 |
var title = ( user_level > USER_LEVEL_MEMBER ) ? $lang.get('user_login_ajax_prompt_title_elev') : $lang.get('user_login_ajax_prompt_title'); |
550
685e839d934e
Added ability to delete the draft revision; [SECURITY] fixed lack of permission check on draft save; renamed messagebox() constructor to MessageBox() (backward compat. maintained)
Dan
parents:
532
diff
changeset
|
106 |
logindata.mb_object = new MessageBox(MB_OKCANCEL | MB_ICONLOCK, title, ''); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
107 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
108 |
logindata.mb_object.onclick['Cancel'] = function() |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
109 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
110 |
// Hide the error message and captcha |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
111 |
if ( document.getElementById('ajax_login_error_box') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
112 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
113 |
document.getElementById('ajax_login_error_box').parentNode.removeChild(document.getElementById('ajax_login_error_box')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
114 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
115 |
if ( document.getElementById('autoCaptcha') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
116 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
117 |
var to = fly_out_top(document.getElementById('autoCaptcha'), false, true); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
118 |
setTimeout(function() { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
119 |
var d = document.getElementById('autoCaptcha'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
120 |
d.parentNode.removeChild(d); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
121 |
}, to); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
122 |
} |
471
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
123 |
// Ask the server to clean our key |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
124 |
ajaxLoginPerformRequest({ |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
125 |
mode: 'clean_key', |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
126 |
key_aes: logindata.key_aes, |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
127 |
key_dh: logindata.key_dh |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
128 |
}); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
129 |
}; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
130 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
131 |
logindata.mb_object.onbeforeclick['OK'] = function() |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
132 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
133 |
ajaxLoginSubmitForm(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
134 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
135 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
136 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
137 |
// Fetch the inner content area |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
138 |
logindata.mb_inner = document.getElementById('messageBox').getElementsByTagName('div')[0]; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
139 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
140 |
// Initialize state |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
141 |
logindata.showing_status = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
142 |
logindata.user_level = user_level; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
143 |
logindata.successfunc = call_on_finish; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
144 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
145 |
// Build the "loading" window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
146 |
ajaxLoginSetStatus(AJAX_STATUS_LOADING_KEY); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
147 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
148 |
// Request the key |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
149 |
ajaxLoginPerformRequest({ mode: 'getkey' }); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
150 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
151 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
152 |
/** |
532
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
153 |
* For compatibility only. |
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
154 |
*/ |
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
155 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
156 |
window.ajaxLogonInit = function(call_on_finish, user_level) |
532
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
157 |
{ |
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
158 |
return ajaxLoginInit(call_on_finish, user_level); |
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
159 |
} |
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
160 |
|
03429d7b1537
Finally fixed link coloring settings in Oxygen Bleu; added compatibility wrapper for people that "ajaxLogonInit" over "ajaxLoginInit"
Dan
parents:
509
diff
changeset
|
161 |
/** |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
162 |
* Sets the contents of the AJAX login window to the appropriate status message. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
163 |
* @param int One of AJAX_STATUS_* |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
164 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
165 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
166 |
window.ajaxLoginSetStatus = function(status) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
167 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
168 |
if ( !logindata.mb_inner ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
169 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
170 |
if ( logindata.showing_status ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
171 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
172 |
var div = document.getElementById('ajax_login_status'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
173 |
if ( div ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
174 |
logindata.mb_inner.removeChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
175 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
176 |
switch(status) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
177 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
178 |
case AJAX_STATUS_LOADING_KEY: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
179 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
180 |
// Create the status div |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
181 |
var div = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
182 |
div.id = 'ajax_login_status'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
183 |
div.style.marginTop = '10px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
184 |
div.style.textAlign = 'center'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
185 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
186 |
// The circly ball ajaxy image + status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
187 |
var status_msg = $lang.get('user_login_ajax_fetching_key'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
188 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
189 |
// Insert the status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
190 |
div.appendChild(document.createTextNode(status_msg)); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
191 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
192 |
// Append a br or two to space things properly |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
193 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
194 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
195 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
196 |
var img = document.createElement('img'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
197 |
img.src = ( ajax_login_loadimg_path ) ? ajax_login_loadimg_path : scriptPath + '/images/loading-big.gif'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
198 |
div.appendChild(img); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
199 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
200 |
// Another coupla brs |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
201 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
202 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
203 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
204 |
// The link to the full login form |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
205 |
var small = document.createElement('small'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
206 |
small.innerHTML = $lang.get('user_login_ajax_link_fullform', { link_full_form: makeUrlNS('Special', 'Login/' + title) }); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
207 |
div.appendChild(small); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
208 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
209 |
// Insert the entire message into the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
210 |
logindata.mb_inner.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
211 |
logindata.mb_inner.appendChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
212 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
213 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
214 |
case AJAX_STATUS_GENERATING_KEY: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
215 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
216 |
// Create the status div |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
217 |
var div = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
218 |
div.id = 'ajax_login_status'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
219 |
div.style.marginTop = '10px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
220 |
div.style.textAlign = 'center'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
221 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
222 |
// The circly ball ajaxy image + status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
223 |
var status_msg = $lang.get('user_login_ajax_generating_key'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
224 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
225 |
// Insert the status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
226 |
div.appendChild(document.createTextNode(status_msg)); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
227 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
228 |
// Append a br or two to space things properly |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
229 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
230 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
231 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
232 |
var img = document.createElement('img'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
233 |
img.src = ( ajax_login_loadimg_path ) ? ajax_login_loadimg_path : scriptPath + '/images/loading-big.gif'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
234 |
div.appendChild(img); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
235 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
236 |
// Another coupla brs |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
237 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
238 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
239 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
240 |
// The link to the full login form |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
241 |
var small = document.createElement('small'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
242 |
small.innerHTML = $lang.get('user_login_ajax_link_fullform_dh', { link_full_form: makeUrlNS('Special', 'Login/' + title) }); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
243 |
div.appendChild(small); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
244 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
245 |
// Insert the entire message into the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
246 |
logindata.mb_inner.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
247 |
logindata.mb_inner.appendChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
248 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
249 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
250 |
case AJAX_STATUS_LOGGING_IN: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
251 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
252 |
// Create the status div |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
253 |
var div = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
254 |
div.id = 'ajax_login_status'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
255 |
div.style.marginTop = '10px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
256 |
div.style.textAlign = 'center'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
257 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
258 |
// The circly ball ajaxy image + status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
259 |
var status_msg = $lang.get('user_login_ajax_loggingin'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
260 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
261 |
// Insert the status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
262 |
div.appendChild(document.createTextNode(status_msg)); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
263 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
264 |
// Append a br or two to space things properly |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
265 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
266 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
267 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
268 |
var img = document.createElement('img'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
269 |
img.src = ( ajax_login_loadimg_path ) ? ajax_login_loadimg_path : scriptPath + '/images/loading-big.gif'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
270 |
div.appendChild(img); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
271 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
272 |
// Insert the entire message into the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
273 |
logindata.mb_inner.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
274 |
logindata.mb_inner.appendChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
275 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
276 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
277 |
case AJAX_STATUS_SUCCESS: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
278 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
279 |
// Create the status div |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
280 |
var div = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
281 |
div.id = 'ajax_login_status'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
282 |
div.style.marginTop = '10px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
283 |
div.style.textAlign = 'center'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
284 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
285 |
// The circly ball ajaxy image + status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
286 |
var status_msg = $lang.get('user_login_success_short'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
287 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
288 |
// Insert the status message |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
289 |
div.appendChild(document.createTextNode(status_msg)); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
290 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
291 |
// Append a br or two to space things properly |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
292 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
293 |
div.appendChild(document.createElement('br')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
294 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
295 |
var img = document.createElement('img'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
296 |
img.src = ( ajax_login_successimg_path ) ? ajax_login_successimg_path : scriptPath + '/images/check.png'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
297 |
div.appendChild(img); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
298 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
299 |
// Insert the entire message into the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
300 |
logindata.mb_inner.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
301 |
logindata.mb_inner.appendChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
302 |
|
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
303 |
break; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
304 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
305 |
case AJAX_STATUS_ERROR: |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
306 |
// Create the status div |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
307 |
var div = document.createElement('div'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
308 |
div.id = 'ajax_login_status'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
309 |
div.style.marginTop = '10px'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
310 |
div.style.textAlign = 'center'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
311 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
312 |
// The circly ball ajaxy image + status message |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
313 |
var status_msg = $lang.get('user_login_ajax_err_crypto'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
314 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
315 |
// Insert the status message |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
316 |
div.appendChild(document.createTextNode(status_msg)); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
317 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
318 |
// Append a br or two to space things properly |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
319 |
div.appendChild(document.createElement('br')); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
320 |
div.appendChild(document.createElement('br')); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
321 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
322 |
var img = document.createElement('img'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
323 |
img.src = ( ajax_login_successimg_path ) ? ajax_login_successimg_path : scriptPath + '/images/checkbad.png'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
324 |
div.appendChild(img); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
325 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
326 |
// Append a br or two to space things properly |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
327 |
div.appendChild(document.createElement('br')); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
328 |
div.appendChild(document.createElement('br')); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
329 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
330 |
// The circly ball ajaxy image + status message |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
331 |
var detail_msg = $lang.get('user_login_ajax_err_crypto_details'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
332 |
var full_link = $lang.get('user_login_ajax_err_crypto_link'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
333 |
var link = document.createElement('a'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
334 |
link.href = makeUrlNS('Special', 'Login/' + title); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
335 |
link.appendChild(document.createTextNode(full_link)); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
336 |
var span = document.createElement('span'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
337 |
span.style.fontSize = 'smaller'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
338 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
339 |
// Insert the message |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
340 |
span.appendChild(document.createTextNode(detail_msg + ' ')); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
341 |
span.appendChild(link); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
342 |
div.appendChild(span); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
343 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
344 |
// Insert the entire message into the login window |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
345 |
logindata.mb_inner.innerHTML = ''; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
346 |
logindata.mb_inner.appendChild(div); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
347 |
|
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
348 |
break; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
349 |
|
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
350 |
default: |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
351 |
eval(setHook('login_set_status')); |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
352 |
break; |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
353 |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
354 |
case AJAX_STATUS_DESTROY: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
355 |
case null: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
356 |
case undefined: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
357 |
logindata.showing_status = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
358 |
return null; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
359 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
360 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
361 |
logindata.showing_status = true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
362 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
363 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
364 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
365 |
* Performs an AJAX logon request to the server and calls ajaxLoginProcessResponse() on the result. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
366 |
* @param object JSON packet to send |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
367 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
368 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
369 |
window.ajaxLoginPerformRequest = function(json) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
370 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
371 |
json = toJSONString(json); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
372 |
json = ajaxEscape(json); |
824
28d9fbcd4f0d
Login: reauth: window.location.hash is now updated to include the new SID so that page reloads will use it
Dan
parents:
816
diff
changeset
|
373 |
ajaxPost(makeUrlNS('Special', 'Login/action.json'), 'r=' + json, function(ajax) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
374 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
375 |
if ( ajax.readyState == 4 && ajax.status == 200 ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
376 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
377 |
// parse response |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
378 |
var response = String(ajax.responseText + ''); |
651
ce9d78d7251d
Improved JSON validation and error interface when validation fails; made rank manager support custom CSS
Dan
parents:
585
diff
changeset
|
379 |
if ( !check_json_response(response) ) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
380 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
381 |
handle_invalid_json(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
382 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
383 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
384 |
response = parseJSON(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
385 |
ajaxLoginProcessResponse(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
386 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
387 |
}, true); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
388 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
389 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
390 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
391 |
* Processes a response from the login server |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
392 |
* @param object JSON response |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
393 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
394 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
395 |
window.ajaxLoginProcessResponse = function(response) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
396 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
397 |
// Did the server send a plaintext error? |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
398 |
if ( response.mode == 'error' ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
399 |
{ |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
400 |
if ( logindata.mb_object ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
401 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
402 |
logindata.mb_object.destroy(); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
403 |
var error_msg = $lang.get('user_' + ( response.error.toLowerCase() )); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
404 |
new MessageBox(MB_ICONSTOP | MB_OK, $lang.get('user_err_login_generic_title'), error_msg); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
405 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
406 |
else |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
407 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
408 |
alert(response.error); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
409 |
} |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
410 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
411 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
412 |
// Main mode switch |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
413 |
switch ( response.mode ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
414 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
415 |
case 'build_box': |
471
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
416 |
// Rid ourselves of any loading windows |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
417 |
ajaxLoginSetStatus(AJAX_STATUS_DESTROY); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
418 |
// The server wants us to build the login form, all the information is there |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
419 |
ajaxLoginBuildForm(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
420 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
421 |
case 'login_success': |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
422 |
ajaxLoginSetStatus(AJAX_STATUS_SUCCESS); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
423 |
logindata.successfunc(response.key); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
424 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
425 |
case 'login_failure': |
471
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
426 |
// Rid ourselves of any loading windows |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
427 |
ajaxLoginSetStatus(AJAX_STATUS_DESTROY); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
428 |
document.getElementById('messageBox').style.backgroundColor = '#C0C0C0'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
429 |
var mb_parent = document.getElementById('messageBox').parentNode; |
728 | 430 |
$(mb_parent).effect("shake", {}, 200); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
431 |
setTimeout(function() |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
432 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
433 |
document.getElementById('messageBox').style.backgroundColor = '#FFF'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
434 |
ajaxLoginBuildForm(response.respawn_info); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
435 |
ajaxLoginShowFriendlyError(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
436 |
}, 2500); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
437 |
break; |
472
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
438 |
case 'login_success_reset': |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
439 |
var conf = confirm($lang.get('user_login_ajax_msg_used_temp_pass')); |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
440 |
if ( conf ) |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
441 |
{ |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
442 |
var url = makeUrlNS('Special', 'PasswordReset/stage2/' + response.user_id + '/' + response.temp_password); |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
443 |
window.location = url; |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
444 |
} |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
445 |
else |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
446 |
{ |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
447 |
// treat as a failure |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
448 |
ajaxLoginSetStatus(AJAX_STATUS_DESTROY); |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
449 |
document.getElementById('messageBox').style.backgroundColor = '#C0C0C0'; |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
450 |
var mb_parent = document.getElementById('messageBox').parentNode; |
699
c7d737202d59
Removed Adobe Spry and replaced with jQuery. Please report any new bugs on the forums or via IRC. In a related note, auto-completion should work now at least for usernames. Still hacking away at page name completion...
Dan
parents:
694
diff
changeset
|
451 |
$(mb_parent).effect("shake", {}, 1500); |
472
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
452 |
setTimeout(function() |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
453 |
{ |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
454 |
document.getElementById('messageBox').style.backgroundColor = '#FFF'; |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
455 |
ajaxLoginBuildForm(response.respawn_info); |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
456 |
// don't show an error here, just silently respawn |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
457 |
}, 2500); |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
458 |
} |
bc4b58034f4d
Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents:
471
diff
changeset
|
459 |
break; |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
460 |
case 'logout_success': |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
461 |
if ( ENANO_SID ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
462 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
463 |
ajaxLoginReplaceSIDInline(false, ENANO_SID, USER_LEVEL_MEMBER); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
464 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
465 |
break; |
471
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
466 |
case 'noop': |
7906fb190fc1
Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Dan
parents:
461
diff
changeset
|
467 |
break; |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
468 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
469 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
470 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
471 |
/* |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
472 |
* RESPONSE HANDLERS |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
473 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
474 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
475 |
/** |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
476 |
* Builds the login form. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
477 |
* @param object Metadata to build off of |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
478 |
*/ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
479 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
480 |
window.ajaxLoginBuildForm = function(data) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
481 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
482 |
// let's hope this effectively preloads the image... |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
483 |
var _ = document.createElement('img'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
484 |
_.src = ( ajax_login_successimg_path ) ? ajax_login_successimg_path : scriptPath + '/images/check.png'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
485 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
486 |
var div = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
487 |
div.id = 'ajax_login_form'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
488 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
489 |
var show_captcha = ( data.locked_out && data.lockout_info.lockout_policy == 'captcha' ) ? data.lockout_info.captcha : false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
490 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
491 |
// text displayed on re-auth |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
492 |
if ( logindata.user_level > USER_LEVEL_MEMBER ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
493 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
494 |
div.innerHTML += $lang.get('user_login_ajax_prompt_body_elev') + '<br /><br />'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
495 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
496 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
497 |
// Create the form |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
498 |
var form = document.createElement('form'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
499 |
form.action = 'javascript:void(ajaxLoginSubmitForm());'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
500 |
form.onsubmit = function() |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
501 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
502 |
ajaxLoginSubmitForm(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
503 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
504 |
} |
460 | 505 |
if ( IE ) |
506 |
{ |
|
507 |
form.style.marginTop = '-20px'; |
|
508 |
} |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
509 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
510 |
// Using tables to wrap form elements because it results in a |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
511 |
// more visually appealing form. Yes, tables suck. I don't really |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
512 |
// care - they make forms look good. |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
513 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
514 |
var table = document.createElement('table'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
515 |
table.style.margin = '0 auto'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
516 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
517 |
// Field - username |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
518 |
var tr1 = document.createElement('tr'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
519 |
var td1_1 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
520 |
td1_1.appendChild(document.createTextNode($lang.get('user_login_field_username') + ':')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
521 |
tr1.appendChild(td1_1); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
522 |
var td1_2 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
523 |
var f_username = document.createElement('input'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
524 |
f_username.id = 'ajax_login_field_username'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
525 |
f_username.name = 'ajax_login_field_username'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
526 |
f_username.type = 'text'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
527 |
f_username.size = '25'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
528 |
if ( data.username ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
529 |
f_username.value = data.username; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
530 |
td1_2.appendChild(f_username); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
531 |
tr1.appendChild(td1_2); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
532 |
table.appendChild(tr1); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
533 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
534 |
// Field - password |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
535 |
var tr2 = document.createElement('tr'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
536 |
var td2_1 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
537 |
td2_1.appendChild(document.createTextNode($lang.get('user_login_field_password') + ':')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
538 |
tr2.appendChild(td2_1); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
539 |
var td2_2 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
540 |
var f_password = document.createElement('input'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
541 |
f_password.id = 'ajax_login_field_password'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
542 |
f_password.name = 'ajax_login_field_username'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
543 |
f_password.type = 'password'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
544 |
f_password.size = '25'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
545 |
if ( !show_captcha ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
546 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
547 |
f_password.onkeyup = function(e) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
548 |
{ |
461 | 549 |
if ( !e ) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
550 |
e = window.event; |
461 | 551 |
if ( !e && IE ) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
552 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
553 |
if ( e.keyCode == 13 ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
554 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
555 |
ajaxLoginSubmitForm(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
556 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
557 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
558 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
559 |
td2_2.appendChild(f_password); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
560 |
tr2.appendChild(td2_2); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
561 |
table.appendChild(tr2); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
562 |
|
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
563 |
eval(setHook('login_build_form')); |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
564 |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
565 |
// Field - captcha |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
566 |
if ( show_captcha ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
567 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
568 |
var tr3 = document.createElement('tr'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
569 |
var td3_1 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
570 |
td3_1.appendChild(document.createTextNode($lang.get('user_login_field_captcha') + ':')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
571 |
tr3.appendChild(td3_1); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
572 |
var td3_2 = document.createElement('td'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
573 |
var f_captcha = document.createElement('input'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
574 |
f_captcha.id = 'ajax_login_field_captcha'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
575 |
f_captcha.name = 'ajax_login_field_username'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
576 |
f_captcha.type = 'text'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
577 |
f_captcha.size = '25'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
578 |
f_captcha.onkeyup = function(e) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
579 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
580 |
if ( !e ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
581 |
e = window.event; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
582 |
if ( !e.keyCode ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
583 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
584 |
if ( e.keyCode == 13 ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
585 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
586 |
ajaxLoginSubmitForm(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
587 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
588 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
589 |
td3_2.appendChild(f_captcha); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
590 |
tr3.appendChild(td3_2); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
591 |
table.appendChild(tr3); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
592 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
593 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
594 |
// Done building the main part of the form |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
595 |
form.appendChild(table); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
596 |
|
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
597 |
// Field: remember login |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
598 |
if ( logindata.user_level <= USER_LEVEL_MEMBER ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
599 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
600 |
var lbl_remember = document.createElement('label'); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
601 |
lbl_remember.style.fontSize = 'smaller'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
602 |
lbl_remember.style.display = 'block'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
603 |
lbl_remember.style.textAlign = 'center'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
604 |
|
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
605 |
// figure out what text to put in the "remember me" checkbox |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
606 |
// infinite session length? |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
607 |
if ( data.extended_time == 0 ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
608 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
609 |
// yes, infinite |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
610 |
var txt_remember = $lang.get('user_login_ajax_check_remember_infinite'); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
611 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
612 |
else |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
613 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
614 |
if ( data.extended_time % 7 == 0 ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
615 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
616 |
// number of days is a multiple of 7 |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
617 |
// use weeks as our unit |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
618 |
var sess_time = data.extended_time / 7; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
619 |
var unit = 'week'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
620 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
621 |
else |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
622 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
623 |
// use days as our unit |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
624 |
var sess_time = data.extended_time; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
625 |
var unit = 'day'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
626 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
627 |
// more than one week or day? |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
628 |
if ( sess_time != 1 ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
629 |
unit += 's'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
630 |
|
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
631 |
// assemble the string |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
632 |
var txt_remember = $lang.get('user_login_ajax_check_remember', { |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
633 |
session_length: sess_time, |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
634 |
length_units: $lang.get('etc_unit_' + unit) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
635 |
}); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
636 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
637 |
var check_remember = document.createElement('input'); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
638 |
check_remember.type = 'checkbox'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
639 |
// this onclick attribute changes the cookie whenever the checkbox or label is clicked |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
640 |
check_remember.setAttribute('onclick', 'var ck = ( this.checked ) ? "enable" : "disable"; createCookie("login_remember", ck, 3650);'); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
641 |
if ( readCookie('login_remember') != 'disable' ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
642 |
check_remember.setAttribute('checked', 'checked'); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
643 |
check_remember.id = 'ajax_login_field_remember'; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
644 |
lbl_remember.appendChild(check_remember); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
645 |
lbl_remember.innerHTML += ' ' + txt_remember; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
646 |
|
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
647 |
form.appendChild(lbl_remember); |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
648 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
649 |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
650 |
// Field: enable Diffie Hellman |
509
175df10e0b56
Added a copy of Firebug Lite for debugging purposes. License is uncertain but being treated as MPL. (If is is not MPL then it is under something more permissive that permits relicensing anyway)
Dan
parents:
478
diff
changeset
|
651 |
if ( IE || is_iPhone ) |
460 | 652 |
{ |
653 |
var lbl_dh = document.createElement('span'); |
|
654 |
lbl_dh.style.fontSize = 'smaller'; |
|
655 |
lbl_dh.style.display = 'block'; |
|
656 |
lbl_dh.style.textAlign = 'center'; |
|
657 |
lbl_dh.innerHTML = $lang.get('user_login_ajax_check_dh_ie'); |
|
658 |
form.appendChild(lbl_dh); |
|
659 |
} |
|
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
660 |
else if ( !data.allow_diffiehellman ) |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
661 |
{ |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
662 |
// create hidden control - server requested that DiffieHellman be disabled (usually means not supported) |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
663 |
var check_dh = document.createElement('input'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
664 |
check_dh.type = 'hidden'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
665 |
check_dh.id = 'ajax_login_field_dh'; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
666 |
form.appendChild(check_dh); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
667 |
} |
460 | 668 |
else |
669 |
{ |
|
670 |
var lbl_dh = document.createElement('label'); |
|
671 |
lbl_dh.style.fontSize = 'smaller'; |
|
672 |
lbl_dh.style.display = 'block'; |
|
673 |
lbl_dh.style.textAlign = 'center'; |
|
674 |
var check_dh = document.createElement('input'); |
|
675 |
check_dh.type = 'checkbox'; |
|
676 |
// this onclick attribute changes the cookie whenever the checkbox or label is clicked |
|
677 |
check_dh.setAttribute('onclick', 'var ck = ( this.checked ) ? "enable" : "disable"; createCookie("diffiehellman_login", ck, 3650);'); |
|
678 |
if ( readCookie('diffiehellman_login') != 'disable' ) |
|
679 |
check_dh.setAttribute('checked', 'checked'); |
|
680 |
check_dh.id = 'ajax_login_field_dh'; |
|
681 |
lbl_dh.appendChild(check_dh); |
|
694
43367c66d869
Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents:
688
diff
changeset
|
682 |
lbl_dh.innerHTML += ' ' + $lang.get('user_login_ajax_check_dh'); |
460 | 683 |
form.appendChild(lbl_dh); |
684 |
} |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
685 |
|
460 | 686 |
if ( IE ) |
687 |
{ |
|
688 |
div.innerHTML += form.outerHTML; |
|
689 |
} |
|
690 |
else |
|
691 |
{ |
|
692 |
div.appendChild(form); |
|
693 |
} |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
694 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
695 |
// Diagnostic / help links |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
696 |
// (only displayed in login, not in re-auth) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
697 |
if ( logindata.user_level == USER_LEVEL_MEMBER ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
698 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
699 |
form.style.marginBottom = '10px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
700 |
var links = document.createElement('small'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
701 |
links.style.display = 'block'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
702 |
links.style.textAlign = 'center'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
703 |
links.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
704 |
if ( !show_captcha ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
705 |
links.innerHTML += $lang.get('user_login_ajax_link_fullform', { link_full_form: makeUrlNS('Special', 'Login/' + title) }) + '<br />'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
706 |
// Always shown |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
707 |
links.innerHTML += $lang.get('user_login_ajax_link_forgotpass', { forgotpass_link: makeUrlNS('Special', 'PasswordReset') }) + '<br />'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
708 |
if ( !show_captcha ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
709 |
links.innerHTML += $lang.get('user_login_createaccount_blurb', { reg_link: makeUrlNS('Special', 'Register') }); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
710 |
div.appendChild(links); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
711 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
712 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
713 |
// Insert the entire form into the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
714 |
logindata.mb_inner.innerHTML = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
715 |
logindata.mb_inner.appendChild(div); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
716 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
717 |
// Post operations: field focus |
816
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
718 |
setTimeout( |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
719 |
function() |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
720 |
{ |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
721 |
if ( logindata.loggedin_username ) |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
722 |
document.getElementById('ajax_login_field_password').focus(); |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
723 |
else |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
724 |
document.getElementById('ajax_login_field_username').focus(); |
44b8446533e1
Fixed login form being focused too early (caused page to scroll up)
Dan
parents:
811
diff
changeset
|
725 |
}, 750); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
726 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
727 |
// Post operations: show captcha window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
728 |
if ( show_captcha ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
729 |
ajaxShowCaptcha(show_captcha); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
730 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
731 |
// Post operations: stash encryption keys and All That Jazz(TM) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
732 |
logindata.key_aes = data.aes_key; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
733 |
logindata.key_dh = data.dh_public_key; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
734 |
logindata.captcha_hash = show_captcha; |
460 | 735 |
logindata.loggedin_username = data.username |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
736 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
737 |
// Are we locked out? If so simulate an error and disable the controls |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
738 |
if ( data.lockout_info.lockout_policy == 'lockout' && data.locked_out ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
739 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
740 |
f_username.setAttribute('disabled', 'disabled'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
741 |
f_password.setAttribute('disabled', 'disabled'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
742 |
var fake_packet = { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
743 |
error_code: 'locked_out', |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
744 |
respawn_info: data |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
745 |
}; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
746 |
ajaxLoginShowFriendlyError(fake_packet); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
747 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
748 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
749 |
|
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
750 |
window.ajaxLoginSubmitForm = function(real, username, password, captcha, remember) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
751 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
752 |
// Perform AES test to make sure it's all working |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
753 |
if ( !aes_self_test() ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
754 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
755 |
alert('BUG: AES self-test failed'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
756 |
login_cache.mb_object.destroy(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
757 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
758 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
759 |
// Hide the error message and captcha |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
760 |
if ( document.getElementById('ajax_login_error_box') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
761 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
762 |
document.getElementById('ajax_login_error_box').parentNode.removeChild(document.getElementById('ajax_login_error_box')); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
763 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
764 |
if ( document.getElementById('autoCaptcha') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
765 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
766 |
var to = fly_out_top(document.getElementById('autoCaptcha'), false, true); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
767 |
setTimeout(function() { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
768 |
var d = document.getElementById('autoCaptcha'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
769 |
d.parentNode.removeChild(d); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
770 |
}, to); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
771 |
} |
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
772 |
// "Remember session" switch |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
773 |
if ( typeof(remember) == 'boolean' ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
774 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
775 |
var remember_session = remember; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
776 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
777 |
else |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
778 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
779 |
if ( document.getElementById('ajax_login_field_remember') ) |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
780 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
781 |
var remember_session = ( document.getElementById('ajax_login_field_remember').checked ) ? true : false; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
782 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
783 |
else |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
784 |
{ |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
785 |
var remember_session = false; |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
786 |
} |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
787 |
} |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
788 |
// Encryption: preprocessor |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
789 |
if ( real ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
790 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
791 |
var do_dh = true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
792 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
793 |
else if ( document.getElementById('ajax_login_field_dh') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
794 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
795 |
var do_dh = document.getElementById('ajax_login_field_dh').checked; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
796 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
797 |
else |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
798 |
{ |
509
175df10e0b56
Added a copy of Firebug Lite for debugging purposes. License is uncertain but being treated as MPL. (If is is not MPL then it is under something more permissive that permits relicensing anyway)
Dan
parents:
478
diff
changeset
|
799 |
if ( IE || is_iPhone ) |
460 | 800 |
{ |
509
175df10e0b56
Added a copy of Firebug Lite for debugging purposes. License is uncertain but being treated as MPL. (If is is not MPL then it is under something more permissive that permits relicensing anyway)
Dan
parents:
478
diff
changeset
|
801 |
// IE/MobileSafari doesn't have this control, continue silently IF the rest |
460 | 802 |
// of the login form is there |
803 |
if ( !document.getElementById('ajax_login_field_username') ) |
|
804 |
{ |
|
805 |
return false; |
|
806 |
} |
|
807 |
} |
|
808 |
else |
|
809 |
{ |
|
810 |
// The user probably clicked ok when the form wasn't in there. |
|
811 |
return false; |
|
812 |
} |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
813 |
} |
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
814 |
|
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
815 |
if ( typeof(username) != 'string' ) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
816 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
817 |
var username = document.getElementById('ajax_login_field_username').value; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
818 |
} |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
819 |
if ( typeof(password) != 'string' ) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
820 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
821 |
var password = document.getElementById('ajax_login_field_password').value; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
822 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
823 |
if ( !captcha && document.getElementById('ajax_login_field_captcha') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
824 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
825 |
var captcha = document.getElementById('ajax_login_field_captcha').value; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
826 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
827 |
|
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
828 |
try |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
829 |
{ |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
830 |
|
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
831 |
if ( do_dh ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
832 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
833 |
ajaxLoginSetStatus(AJAX_STATUS_GENERATING_KEY); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
834 |
if ( !real ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
835 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
836 |
// Wait while the browser updates the login window |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
837 |
setTimeout(function() |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
838 |
{ |
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
839 |
ajaxLoginSubmitForm(true, username, password, captcha, remember_session); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
840 |
}, 200); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
841 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
842 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
843 |
// Perform Diffie Hellman stuff |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
844 |
var dh_priv = dh_gen_private(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
845 |
var dh_pub = dh_gen_public(dh_priv); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
846 |
var secret = dh_gen_shared_secret(dh_priv, logindata.key_dh); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
847 |
// secret_hash is used to verify that the server guesses the correct secret |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
848 |
var secret_hash = hex_sha1(secret); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
849 |
// crypt_key is the actual AES key |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
850 |
var crypt_key = (hex_sha256(secret)).substr(0, (keySizeInBits / 4)); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
851 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
852 |
else |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
853 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
854 |
var crypt_key = logindata.key_aes; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
855 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
856 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
857 |
ajaxLoginSetStatus(AJAX_STATUS_LOGGING_IN); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
858 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
859 |
// Encrypt the password and username |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
860 |
var userinfo = { |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
861 |
username: username, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
862 |
password: password |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
863 |
}; |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
864 |
|
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
865 |
eval(setHook('login_build_userinfo')); |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
866 |
|
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
867 |
userinfo = toJSONString(userinfo); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
868 |
var crypt_key_ba = hexToByteArray(crypt_key); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
869 |
userinfo = stringToByteArray(userinfo); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
870 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
871 |
userinfo = rijndaelEncrypt(userinfo, crypt_key_ba, 'ECB'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
872 |
userinfo = byteArrayToHex(userinfo); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
873 |
// Encrypted username and password (serialized with JSON) are now in the userinfo string |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
874 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
875 |
// Collect other needed information |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
876 |
if ( logindata.captcha_hash ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
877 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
878 |
var captcha_hash = logindata.captcha_hash; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
879 |
var captcha_code = captcha; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
880 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
881 |
else |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
882 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
883 |
var captcha_hash = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
884 |
var captcha_code = false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
885 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
886 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
887 |
// Ship it across the 'net |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
888 |
if ( do_dh ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
889 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
890 |
var json_packet = { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
891 |
mode: 'login_dh', |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
892 |
userinfo: userinfo, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
893 |
captcha_code: captcha_code, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
894 |
captcha_hash: captcha_hash, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
895 |
dh_public_key: logindata.key_dh, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
896 |
dh_client_key: dh_pub, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
897 |
dh_secret_hash: secret_hash, |
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
898 |
level: logindata.user_level, |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
899 |
remember: remember_session |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
900 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
901 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
902 |
else |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
903 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
904 |
var json_packet = { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
905 |
mode: 'login_aes', |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
906 |
userinfo: userinfo, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
907 |
captcha_code: captcha_code, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
908 |
captcha_hash: captcha_hash, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
909 |
key_aes: hex_md5(crypt_key), |
688
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
910 |
level: logindata.user_level, |
f2a824ce5f18
Added customizable parameters for session length and the long-missing "remember me" option (or rather, the ability to turn it off and make sessions temporary)
Dan
parents:
651
diff
changeset
|
911 |
remember: remember_session |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
912 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
913 |
} |
718
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
914 |
} |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
915 |
catch(e) |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
916 |
{ |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
917 |
ajaxLoginSetStatus(AJAX_STATUS_ERROR); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
918 |
console.error('Exception caught in login process; backtrace follows'); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
919 |
console.debug(e); |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
920 |
return false; |
12485b1d41fd
Fixed issue where login box was not obeying server orders to disable DiffieHellman. Increased quality of error handling for JS errors during login process.
Dan
parents:
699
diff
changeset
|
921 |
} |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
922 |
ajaxLoginPerformRequest(json_packet); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
923 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
924 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
925 |
window.ajaxLoginShowFriendlyError = function(response) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
926 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
927 |
if ( !response.respawn_info ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
928 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
929 |
if ( !response.error_code ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
930 |
return false; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
931 |
var text = ajaxLoginGetErrorText(response); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
932 |
if ( document.getElementById('ajax_login_error_box') ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
933 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
934 |
// console.info('Reusing existing error-box'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
935 |
document.getElementById('ajax_login_error_box').innerHTML = text; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
936 |
return true; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
937 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
938 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
939 |
// console.info('Drawing new error-box'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
940 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
941 |
// calculate position for the top of the box |
699
c7d737202d59
Removed Adobe Spry and replaced with jQuery. Please report any new bugs on the forums or via IRC. In a related note, auto-completion should work now at least for usernames. Still hacking away at page name completion...
Dan
parents:
694
diff
changeset
|
942 |
var mb_bottom = $dynano('messageBoxButtons').Top() + $dynano('messageBoxButtons').Height(); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
943 |
// if the box isn't done flying in yet, just estimate |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
944 |
if ( mb_bottom < ( getHeight() / 2 ) ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
945 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
946 |
mb_bottom = ( getHeight() / 2 ) + 120; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
947 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
948 |
var win_bottom = getHeight() + getScrollOffset(); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
949 |
var top = mb_bottom + ( ( win_bottom - mb_bottom ) / 2 ) - 32; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
950 |
// left position = 0.2 * window_width, seeing as the box is 60% width this works hackishly but nice and quick |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
951 |
var left = getWidth() * 0.2; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
952 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
953 |
// create the div |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
954 |
var errbox = document.createElement('div'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
955 |
errbox.className = 'error-box-mini'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
956 |
errbox.style.position = 'absolute'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
957 |
errbox.style.width = '60%'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
958 |
errbox.style.top = top + 'px'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
959 |
errbox.style.left = left + 'px'; |
694
43367c66d869
Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents:
688
diff
changeset
|
960 |
errbox.style.zIndex = getHighestZ(); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
961 |
errbox.innerHTML = text; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
962 |
errbox.id = 'ajax_login_error_box'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
963 |
|
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
964 |
var body = document.getElementsByTagName('body')[0]; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
965 |
body.appendChild(errbox); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
966 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
967 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
968 |
window.ajaxLoginGetErrorText = function(response) |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
969 |
{ |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
970 |
if ( !response.error_code.match(/^[a-z0-9]+_[a-z0-9_]+$/) ) |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
971 |
{ |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
972 |
return response.error_code; |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
973 |
} |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
974 |
switch ( response.error_code ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
975 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
976 |
default: |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
977 |
var ls = $lang.get('user_err_' + response.error_code); |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
978 |
if ( ls == 'user_err_' + response.error_code ) |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
979 |
ls = $lang.get(response.error_code); |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
980 |
|
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
981 |
return ls; |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
982 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
983 |
case 'locked_out': |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
984 |
if ( response.respawn_info.lockout_info.lockout_policy == 'lockout' ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
985 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
986 |
return $lang.get('user_err_locked_out', { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
987 |
lockout_threshold: response.respawn_info.lockout_info.lockout_threshold, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
988 |
lockout_duration: response.respawn_info.lockout_info.lockout_duration, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
989 |
time_rem: response.respawn_info.lockout_info.time_rem, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
990 |
plural: ( response.respawn_info.lockout_info.time_rem == 1 ) ? '' : $lang.get('meta_plural'), |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
991 |
captcha_blurb: '' |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
992 |
}); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
993 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
994 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
995 |
case 'invalid_credentials': |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
996 |
var base = $lang.get('user_err_invalid_credentials'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
997 |
if ( response.respawn_info.locked_out ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
998 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
999 |
base += ' '; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1000 |
var captcha_blurb = ''; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1001 |
switch(response.respawn_info.lockout_info.lockout_policy) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1002 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1003 |
case 'captcha': |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1004 |
captcha_blurb = $lang.get('user_err_locked_out_captcha_blurb'); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1005 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1006 |
case 'lockout': |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1007 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1008 |
default: |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1009 |
base += 'WTF? Shouldn\'t be locked out with lockout policy set to disable.'; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1010 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1011 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1012 |
base += $lang.get('user_err_locked_out', { |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1013 |
captcha_blurb: captcha_blurb, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1014 |
lockout_threshold: response.respawn_info.lockout_info.lockout_threshold, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1015 |
lockout_duration: response.respawn_info.lockout_info.lockout_duration, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1016 |
time_rem: response.respawn_info.lockout_info.time_rem, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1017 |
plural: ( response.respawn_info.lockout_info.time_rem == 1 ) ? '' : $lang.get('meta_plural') |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1018 |
}); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1019 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1020 |
else if ( response.respawn_info.lockout_info.lockout_policy == 'lockout' || response.respawn_info.lockout_info.lockout_policy == 'captcha' ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1021 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1022 |
// if we have a lockout policy of captcha or lockout, then warn the user |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1023 |
switch ( response.respawn_info.lockout_info.lockout_policy ) |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1024 |
{ |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1025 |
case 'captcha': |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1026 |
base += $lang.get('user_err_invalid_credentials_lockout_captcha', { |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1027 |
fails: response.respawn_info.lockout_info.lockout_fails, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1028 |
lockout_threshold: response.respawn_info.lockout_info.lockout_threshold, |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1029 |
lockout_duration: response.respawn_info.lockout_info.lockout_duration |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1030 |
}); |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1031 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1032 |
case 'lockout': |
843
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1033 |
base += $lang.get('user_err_invalid_credentials_lockout', { |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1034 |
fails: response.respawn_info.lockout_info.lockout_fails, |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1035 |
lockout_threshold: response.respawn_info.lockout_info.lockout_threshold, |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1036 |
lockout_duration: response.respawn_info.lockout_info.lockout_duration |
4415e50e4e84
Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Dan
parents:
824
diff
changeset
|
1037 |
}); |
436
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1038 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1039 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1040 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1041 |
return base; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1042 |
break; |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1043 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1044 |
} |
242353360e37
Added support for Diffie-Hellman key exchange during login. w00t!
Dan
parents:
diff
changeset
|
1045 |
|
585
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1046 |
window.ajaxShowCaptcha = function(code) |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1047 |
{ |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1048 |
var mydiv = document.createElement('div'); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1049 |
mydiv.style.backgroundColor = '#FFFFFF'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1050 |
mydiv.style.padding = '10px'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1051 |
mydiv.style.position = 'absolute'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1052 |
mydiv.style.top = '0px'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1053 |
mydiv.id = 'autoCaptcha'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1054 |
mydiv.style.zIndex = String( getHighestZ() + 1 ); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1055 |
var img = document.createElement('img'); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1056 |
img.onload = function() |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1057 |
{ |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1058 |
if ( this.loaded ) |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1059 |
return true; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1060 |
var mydiv = document.getElementById('autoCaptcha'); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1061 |
var width = getWidth(); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1062 |
var divw = $dynano(mydiv).Width(); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1063 |
var left = ( width / 2 ) - ( divw / 2 ); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1064 |
mydiv.style.left = left + 'px'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1065 |
fly_in_top(mydiv, false, true); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1066 |
this.loaded = true; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1067 |
}; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1068 |
img.src = makeUrlNS('Special', 'Captcha/' + code); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1069 |
img.onclick = function() { this.src = this.src + '/a'; }; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1070 |
img.style.cursor = 'pointer'; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1071 |
mydiv.appendChild(img); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1072 |
domObjChangeOpac(0, mydiv); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1073 |
var body = document.getElementsByTagName('body')[0]; |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1074 |
body.appendChild(mydiv); |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1075 |
} |
35e91d16ecf5
Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents:
582
diff
changeset
|
1076 |
|
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1077 |
window.ajaxInitLogout = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1078 |
{ |
779
609e35845ec3
load_component() now accepts an array, and most JS components are loaded all in one request now. Totally modular baby. And failsafe too.
Dan
parents:
741
diff
changeset
|
1079 |
load_component(['messagebox', 'l10n', 'flyin', 'fadefilter']); |
582
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1080 |
var mb = new MessageBox(MB_YESNO|MB_ICONQUESTION, $lang.get('user_logout_confirm_title'), $lang.get('user_logout_confirm_body')); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1081 |
mb.onclick['Yes'] = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1082 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1083 |
window.location = makeUrlNS('Special', 'Logout/' + csrf_token + '/' + title); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1084 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1085 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1086 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1087 |
window.mb_logout = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1088 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1089 |
ajaxInitLogout(); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1090 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1091 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1092 |
window.ajaxStartLogin = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1093 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1094 |
ajaxLogonToMember(); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1095 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1096 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1097 |
window.ajaxStartAdminLogin = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1098 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1099 |
// IE <6 pseudo-compatibility |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1100 |
if ( KILL_SWITCH ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1101 |
return true; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1102 |
if ( auth_level < USER_LEVEL_ADMIN ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1103 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1104 |
ajaxLoginInit(function(k) { |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1105 |
ENANO_SID = k; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1106 |
auth_level = USER_LEVEL_ADMIN; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1107 |
var loc = makeUrlNS('Special', 'Administration'); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1108 |
if ( (ENANO_SID + ' ').length > 1 ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1109 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1110 |
}, USER_LEVEL_ADMIN); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1111 |
return false; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1112 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1113 |
var loc = makeUrlNS('Special', 'Administration'); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1114 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1115 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1116 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1117 |
window.ajaxAdminPage = function() |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1118 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1119 |
// IE <6 pseudo-compatibility |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1120 |
if ( KILL_SWITCH ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1121 |
return true; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1122 |
if ( auth_level < USER_LEVEL_ADMIN ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1123 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1124 |
ajaxPromptAdminAuth(function(k) { |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1125 |
ENANO_SID = k; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1126 |
auth_level = USER_LEVEL_ADMIN; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1127 |
var loc = String(window.location + ''); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1128 |
window.location = append_sid(loc); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1129 |
var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title)); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1130 |
if ( (ENANO_SID + ' ').length > 1 ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1131 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1132 |
}, 9); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1133 |
return false; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1134 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1135 |
var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title)); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1136 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1137 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1138 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1139 |
var navto_ns; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1140 |
var navto_pg; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1141 |
var navto_ul; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1142 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1143 |
window.ajaxLoginNavTo = function(namespace, page_id, min_level) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1144 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1145 |
// IE <6 pseudo-compatibility |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1146 |
if ( KILL_SWITCH ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1147 |
return true; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1148 |
navto_pg = page_id; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1149 |
navto_ns = namespace; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1150 |
navto_ul = min_level; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1151 |
if ( auth_level < min_level ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1152 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1153 |
ajaxPromptAdminAuth(function(k) { |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1154 |
ENANO_SID = k; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1155 |
auth_level = navto_ul; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1156 |
var loc = makeUrlNS(navto_ns, navto_pg); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1157 |
if ( (ENANO_SID + ' ').length > 1 ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1158 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1159 |
}, min_level); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1160 |
return false; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1161 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1162 |
var loc = makeUrlNS(navto_ns, navto_pg); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1163 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1164 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1165 |
|
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1166 |
window.ajaxAdminUser = function(username) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1167 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1168 |
// IE <6 pseudo-compatibility |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1169 |
if ( KILL_SWITCH ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1170 |
return true; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1171 |
if ( auth_level < USER_LEVEL_ADMIN ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1172 |
{ |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1173 |
ajaxPromptAdminAuth(function(k) { |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1174 |
ENANO_SID = k; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1175 |
auth_level = USER_LEVEL_ADMIN; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1176 |
var loc = String(window.location + ''); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1177 |
window.location = append_sid(loc); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1178 |
var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'UserManager&src=get&user=' + ajaxEscape(username)); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1179 |
if ( (ENANO_SID + ' ').length > 1 ) |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1180 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1181 |
}, 9); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1182 |
return false; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1183 |
} |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1184 |
var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'UserManager&src=get&user=' + ajaxEscape(username)); |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1185 |
window.location = loc; |
a38876c0793c
Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents:
550
diff
changeset
|
1186 |
} |
793
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1187 |
|
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1188 |
window.ajaxDynamicReauth = function(adminpage, level) |
793
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1189 |
{ |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1190 |
var old_sid = ENANO_SID; |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1191 |
var targetpage = adminpage; |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1192 |
if ( !level ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1193 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1194 |
level = USER_LEVEL_ADMIN; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1195 |
} |
793
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1196 |
ajaxLogonInit(function(k) |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1197 |
{ |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1198 |
ajaxLoginReplaceSIDInline(k, old_sid, level); |
794
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1199 |
mb_current_obj.destroy(); |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1200 |
console.debug(targetpage); |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1201 |
if ( typeof(targetpage) == 'string' ) |
793
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1202 |
{ |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1203 |
ajaxPage(targetpage); |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1204 |
} |
794
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1205 |
else if ( typeof(targetpage) == 'function' ) |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1206 |
{ |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1207 |
targetpage(); |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1208 |
} |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1209 |
}, level); |
793
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1210 |
ajaxLoginShowFriendlyError({ |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1211 |
error_code: 'admin_session_timed_out', |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1212 |
respawn_info: {} |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1213 |
}); |
c0724bf6039b
Added dynamic reload-less re-auth to admin panel, so that if a session is lost it can be recovered without a reload. Support for hooking into form submits will be added in the future.
Dan
parents:
780
diff
changeset
|
1214 |
} |
794
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1215 |
|
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1216 |
window.ajaxRenewSession = function() |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1217 |
{ |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1218 |
ajaxDynamicReauth(false); |
720516162012
Added support for re-auth on submit to rank manager when session goes bad; still more to come
Dan
parents:
793
diff
changeset
|
1219 |
} |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1220 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1221 |
window.ajaxTrashElevSession = function() |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1222 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1223 |
load_component(['messagebox', 'fadefilter', 'l10n', 'flyin', 'jquery', 'jquery-ui']); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1224 |
miniPromptMessage({ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1225 |
title: $lang.get('user_logout_confirm_title_elev'), |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1226 |
message: $lang.get('user_logout_confirm_body_elev'), |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1227 |
buttons: [ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1228 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1229 |
text: $lang.get('user_logout_confirm_btn_logout'), |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1230 |
color: 'red', |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1231 |
style: { |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1232 |
fontWeight: 'bold' |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1233 |
}, |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1234 |
onclick: function() |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1235 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1236 |
ajaxLoginPerformRequest({ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1237 |
mode: 'logout', |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1238 |
level: auth_level, |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1239 |
csrf_token: csrf_token |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1240 |
}); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1241 |
miniPromptDestroy(this); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1242 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1243 |
}, |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1244 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1245 |
text: $lang.get('etc_cancel'), |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1246 |
onclick: function() |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1247 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1248 |
miniPromptDestroy(this); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1249 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1250 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1251 |
] |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1252 |
}); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1253 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1254 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1255 |
/** |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1256 |
* Take an SID and patch all internal links on the page. |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1257 |
* @param string New key. If false, removes keys from the page. |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1258 |
* @param string Old key. If false, only appends the new SID (more work as it uses DOM, use when dynamically going up to elevated) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1259 |
* @param int New level, not a huge deal but sets auth_level. Try to specify it as some functions depend on it. |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1260 |
*/ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1261 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1262 |
window.ajaxLoginReplaceSIDInline = function(key, oldkey, level) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1263 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1264 |
var host = String(window.location.hostname); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1265 |
var exp = new RegExp('^https?://' + host.replace('.', '\.') + contentPath.replace('.', '\.'), 'g'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1266 |
var rexp = new RegExp('^https?://' + host.replace('.', '\.'), 'g'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1267 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1268 |
if ( key ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1269 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1270 |
if ( oldkey ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1271 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1272 |
var body = document.getElementsByTagName('body')[0]; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1273 |
var replace = new RegExp(oldkey, 'g'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1274 |
body.innerHTML = body.innerHTML.replace(replace, key); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1275 |
ENANO_SID = key; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1276 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1277 |
else |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1278 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1279 |
// append SID to all internal links |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1280 |
ENANO_SID = key; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1281 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1282 |
var links = document.getElementsByTagName('a'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1283 |
for ( var i = 0; i < links.length; i++ ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1284 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1285 |
if ( links[i].href.match(exp, links[i]) && links[i].href.indexOf('#') == -1 ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1286 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1287 |
var newurl = (String(append_sid(links[i].href))).replace(rexp, ''); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1288 |
links[i].href = newurl; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1289 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1290 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1291 |
|
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1292 |
var forms = document.getElementsByTagName('form'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1293 |
for ( var i = 0; i < forms.length; i++ ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1294 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1295 |
if ( forms[i].method.toLowerCase() == 'post' ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1296 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1297 |
if ( forms[i].action.match(exp, links[i]) ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1298 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1299 |
var newurl = (String(append_sid(forms[i].action))).replace(rexp, ''); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1300 |
forms[i].action = newurl; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1301 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1302 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1303 |
else |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1304 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1305 |
if ( !forms[i].auth ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1306 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1307 |
var auth = document.createElement('input'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1308 |
auth.type = 'hidden'; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1309 |
auth.name = 'auth'; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1310 |
auth.value = key; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1311 |
forms[i].appendChild(auth); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1312 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1313 |
else |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1314 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1315 |
forms[i].auth.value = key; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1316 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1317 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1318 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1319 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1320 |
if ( level ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1321 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1322 |
auth_level = level; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1323 |
} |
824
28d9fbcd4f0d
Login: reauth: window.location.hash is now updated to include the new SID so that page reloads will use it
Dan
parents:
816
diff
changeset
|
1324 |
window.location.hash = '#auth:' + key; |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1325 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1326 |
else |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1327 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1328 |
auth_level = USER_LEVEL_MEMBER; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1329 |
ENANO_SID = false; |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1330 |
if ( oldkey ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1331 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1332 |
var links = document.getElementsByTagName('a'); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1333 |
for ( var i = 0; i < links.length; i++ ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1334 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1335 |
if ( links[i].href.match(exp, links[i]) && links[i].href.indexOf('#') == -1 ) |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1336 |
{ |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1337 |
links[i].href = links[i].href.replace(/\?auth=([a-f0-9]+)(&|#|$)/, '$2').replace(/&auth=([a-f0-9]+)/, '').replace(rexp, ''); |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1338 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1339 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1340 |
} |
824
28d9fbcd4f0d
Login: reauth: window.location.hash is now updated to include the new SID so that page reloads will use it
Dan
parents:
816
diff
changeset
|
1341 |
window.location.hash = '#auth:false'; |
811
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1342 |
} |
5c807fe77020
Added support for live re-auth and de-auth; fully AJAX, no page reload required, plus plugin-usable API.
Dan
parents:
794
diff
changeset
|
1343 |
} |