1/** 2 * Securelogin Dokuwiki Plugin 3 * 4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 5 * @author Mikhail I. Izmestev 6 * @maintainer Matt Bagley 7 * 8 * @see also https://www.dokuwiki.org/plugin:securelogin 9 */ 10 11function esc( x ) { 12 return encodeURIComponent(x); 13} 14 15function secure_profile() { 16 var form = jQuery("#dw__register")[0]; 17 if(!form || !form.use_securelogin.checked) return true; 18 var newpass = form.newpass; 19 var passchk = form.passchk; 20 var oldpass = form.oldpass; 21 var sectok = form.sectok; 22 23 form.securelogin.value = encrypt("newpass="+esc(newpass.value)+"&passchk="+esc(passchk.value)+"&oldpass="+esc(oldpass.value)+";"+sectok.value); 24 oldpass.value = "******"; 25 newpass.value = "******"; 26 passchk.value = "******"; 27 return true; 28} 29 30function secure_login() { 31 var form = jQuery("#dw__login")[0]; 32 if(!form || !form.use_securelogin.checked) return true; 33 var user = form.u; 34 var pass = form.p; 35 var sectok = form.sectok; 36 37 form.securelogin.value = encrypt("p="+esc(pass.value)+";"+sectok.value); 38 pass.value = "******"; 39 return true; 40} 41 42function secure_admin() { 43 var el = jQuery("#test__message")[0]; 44 if(el) 45 el.value = encrypt(esc(el.value)); 46 return true; 47} 48 49function secure_add_user() { 50 var form = securelogin_get_form(jQuery('#add_userid')[0]); 51 if(!form || !form.use_securelogin.checked) return true; 52 var pass = form.add_userpass; 53 var pass2 = form.add_userpass2; 54 var sectok = form.sectok; 55 56 form.securelogin.value = encrypt("userpass="+esc(pass.value)+"&userpass2="+esc(pass2.value)+";"+sectok.value); 57 pass.value = "******"; 58 pass2.value = "******"; 59 return true; 60} 61 62function secure_modify_user() { 63 var form = securelogin_get_form(jQuery('#modify_userid')[0]); 64 if(!form || !form.use_securelogin.checked) return true; 65 var pass = form.modify_userpass; 66 var pass2 = form.modify_userpass2; 67 var sectok = form.sectok; 68 69 form.securelogin.value = encrypt("userpass="+esc(pass.value)+"&userpass2="+esc(pass2.value)+";"+sectok.value); 70 pass.value = "******"; 71 pass2.value = "******"; 72 return true; 73} 74 75function ajaxSuccess(data) { 76 if(data === ''){ return; } 77 var jsNode = document.createElement('script'); 78 jsNode.setAttribute('type', 'text/javascript'); 79 jsNode.text = data; 80 document.getElementsByTagName('head')[0].appendChild(jsNode); 81 82 for(var i = 0; i < securelogin_forms.length; ++i) { 83 var form = securelogin_forms[i][1]; 84 switch(securelogin_forms[i][0]) { 85 case 'dw__login': 86 case 'dw__register': 87 var uslNode = document.createElement('label'); 88 var button = jQuery(":submit", form)[0]; 89 if(!button) button = jQuery("input.button", form)[0]; 90 button.parentNode.insertBefore(uslNode, button); 91 uslNode.setAttribute('class', 'simple'); 92 uslNode.setAttribute('for', 'use_securelogin'); 93 var label; 94 if('dw__login' == securelogin_forms[i][0]) { 95 jQuery(form).submit(secure_login); 96 label = securelogin_login_label; 97 } 98 else { 99 jQuery(form).submit(secure_profile); 100 label = securelogin_update_label; 101 } 102 uslNode.innerHTML = '<input type="checkbox" id="use_securelogin" name="use_securelogin" value="1" checked="checked"/> <span>'+label+'</span>'; 103 break; 104 case 'test__publicKey': 105 jQuery(form).submit(secure_admin); 106 break; 107 case 'add_userid': 108 case 'modify_userid': 109 var uslNode = document.createElement('tbody'); 110 var button = jQuery(":submit", form)[0].parentNode.parentNode.parentNode; 111 if(!button) button = jQuery("input.button", form)[0].parentNode.parentNode.parentNode; 112 button.parentNode.insertBefore(uslNode, button); 113 var tr = document.createElement('tr'); 114 uslNode.appendChild(tr); 115 var td = document.createElement('td'); 116 tr.appendChild(td); 117 td.innerHTML = '<label class="simple" for="use_securelogin">'+securelogin_update_label+'</label>'; 118 td = document.createElement('td'); 119 tr.appendChild(td); 120 td.innerHTML = '<input type="checkbox" id="use_securelogin" name="use_securelogin" value="1" checked="checked"/>'; 121 if('add_userid' == securelogin_forms[i][0]) 122 jQuery(form).submit(secure_add_user); 123 else 124 jQuery(form).submit(secure_modify_user); 125 break; 126 } 127 } 128} 129 130if(securelogin_forms) { 131 jQuery.post( 132 DOKU_BASE + 'lib/exe/ajax.php', 133 { call: 'securelogin_public_key' }, 134 ajaxSuccess 135 ); 136} 137