#2381, can now remove autocomplete on login page.

Ylian Saint-Hilaire committed Mar 18, 2021 at 22:13 UTC 302f1b0bba49b423f9e138f52cff58ae4d180890
3 files changed +31 -30
views/login.handlebars
+14 -14
@@ -54,11 +54,11 @@
54 <table>
55 <tr>
56 <td id=loginusername align=right width=100>Username:</td>
57 - <td><input id=username autocomplete="username" type=text maxlength=64 name=username onchange=validateLogin(1) onkeyup=validateLogin(1,event) /></td>
57 + <td><input id=username {{{autocomplete}}}="username" type=text maxlength=64 name=username onchange=validateLogin(1) onkeyup=validateLogin(1,event) /></td>
58 </tr>
59 <tr>
60 <td align=right>Password:</td>
61 - <td><input id=password autocomplete="current-password" type=password maxlength=256 name=password onchange=validateLogin(2) onkeyup=validateLogin(2,event) /></td>
61 + <td><input id=password {{{autocomplete}}}="current-password" type=password maxlength=256 name=password onchange=validateLogin(2) onkeyup=validateLogin(2,event) /></td>
62 </tr>
63 <tr>
64 <td><div id=showPassHintLink style=display:none><a onclick="return showPassHint(event);" href="#" style="cursor:pointer">Show Hint</a></div></td>
@@ -99,27 +99,27 @@
99 <table>
100 <tr id="nuUserRow">
101 <td id="nuUser" align=right width=100>Username:</td>
102 - <td><input id=ausername type=text autocomplete="username" name=username onchange=validateCreate(1) maxlength=64 onkeydown=haltReturn(event) onkeyup=validateCreate(1,event) /></td>
102 + <td><input id=ausername type=text {{{autocomplete}}}="username" name=username onchange=validateCreate(1) maxlength=64 onkeydown=haltReturn(event) onkeyup=validateCreate(1,event) /></td>
103 </tr>
104 <tr>
105 <td id="nuEmail" align=right width=100>Email:</td>
106 - <td><input id=aemail type=text autocomplete="email" inputmode="email" name=email onchange=validateCreate(2) maxlength=256 onkeydown=haltReturn(event) onkeyup=validateCreate(2,event) /></td>
106 + <td><input id=aemail type=text {{{autocomplete}}}="email" inputmode="email" name=email onchange=validateCreate(2) maxlength=256 onkeydown=haltReturn(event) onkeyup=validateCreate(2,event) /></td>
107 </tr>
108 <tr>
109 <td id="nuPass1" align=right>Password:</td>
110 - <td><input id=apassword1 type=password name=password1 autocomplete="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(3,event) onkeyup=validateCreate(3,event) /></td>
110 + <td><input id=apassword1 type=password name=password1 {{{autocomplete}}}="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(3,event) onkeyup=validateCreate(3,event) /></td>
111 </tr>
112 <tr>
113 <td id="nuPass2" align=right>Password:</td>
114 - <td><input id=apassword2 type=password name=password2 autocomplete="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(4,event) onkeyup=validateCreate(4,event) /></td>
114 + <td><input id=apassword2 type=password name=password2 {{{autocomplete}}}="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(4,event) onkeyup=validateCreate(4,event) /></td>
115 </tr>
116 <tr id="createPanelHint" style="display:none">
117 <td id="nuHint" align=right>Password Hint:</td>
118 - <td><input id=apasswordhint type=text name=apasswordhint autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(5,event) onkeyup=validateCreate(5,event) /></td>
118 + <td><input id=apasswordhint type=text name=apasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(5,event) onkeyup=validateCreate(5,event) /></td>
119 </tr>
120 <tr id=newAccountPass title="Enter the account creation token">
121 <td id="nuToken" align=right>Creation Token:</td>
122 - <td><input id=anewaccountpass type=password name=anewaccountpass autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(6,event) onkeyup=validateCreate(6,event) /></td>
122 + <td><input id=anewaccountpass type=password name=anewaccountpass {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(6,event) onkeyup=validateCreate(6,event) /></td>
123 </tr>
124 <tr>
125 <td colspan=2>
@@ -156,7 +156,7 @@
156 </form>
157 </div>
158 <div id=tokenpanel style="display:none">
159 - <form method=post autocomplete=off>
159 + <form method=post {{{autocomplete}}}=off>
160 <input type=hidden name=action value=tokenlogin />
161 <input type=hidden name=hwstate value="{{{hwstate}}}" />
162 <div id=message4></div>
@@ -164,7 +164,7 @@
164 <tr>
165 <td align=right width=100>Login token:</td>
166 <td>
167 - <input id=tokenInput autocomplete="one-time-code" inputmode="numeric" type=text name=token maxlength=50 onchange=checkToken(event) onpaste=checkToken(event) onkeyup=checkToken(event) onkeydown=checkToken(event) /><br />
167 + <input id=tokenInput {{{autocomplete}}}="one-time-code" inputmode="numeric" type=text name=token maxlength=50 onchange=checkToken(event) onpaste=checkToken(event) onkeyup=checkToken(event) onkeydown=checkToken(event) /><br />
168 <input id=hwtokenInput type=text name=hwtoken style="display:none" />
169 </td>
170 </tr>
@@ -223,15 +223,15 @@
223 <table>
224 <tr>
225 <td id="rnuPass1" width=100 align=right>Password:</td>
226 - <td><input id=rapassword1 type=password name=rpassword1 autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(3,event) onkeyup=validatePassReset(3,event) /></td>
226 + <td><input id=rapassword1 type=password name=rpassword1 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(3,event) onkeyup=validatePassReset(3,event) /></td>
227 </tr>
228 <tr>
229 <td id="rnuPass2" align=right>Password:</td>
230 - <td><input id=rapassword2 type=password name=rpassword2 autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(4,event) onkeyup=validatePassReset(4,event) /></td>
230 + <td><input id=rapassword2 type=password name=rpassword2 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(4,event) onkeyup=validatePassReset(4,event) /></td>
231 </tr>
232 <tr id="resetpasswordpanelHint" style="display:none">
233 <td id="rnuHint" align=right>Password Hint:</td>
234 - <td><input id=rapasswordhint type=text name=rpasswordhint autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(5,event) onkeyup=validatePassReset(5,event) /></td>
234 + <td><input id=rapasswordhint type=text name=rpasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(5,event) onkeyup=validatePassReset(5,event) /></td>
235 </tr>
236 <tr>
237 <td colspan=2>
@@ -783,7 +783,7 @@
783
784 function changeEmailAddress() {
785 var email = Q('unconfirmedEmail').innerHTML;
786 - var x = addHtmlValue("Email", '<input id=dp1email style=width:230px maxlength=256 value="' + email + '" autocomplete=off onchange=validateEmailAddress() onkeyup=validateEmailAddress() />');
786 + var x = addHtmlValue("Email", '<input id=dp1email style=width:230px maxlength=256 value="' + email + '" {{{autocomplete}}}=off onchange=validateEmailAddress() onkeyup=validateEmailAddress() />');
787 setDialogMode(1, "Email Confirmation", 3, changeEmailAddressEx, x);
788 validateEmailAddress();
789 }
views/login2.handlebars
+16 -16
@@ -46,12 +46,12 @@
46 <table style="width:100%">
47 <tr>
48 <td>
49 - <input id=username title="Username" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" autocomplete="username" placeholder="Username" type=text maxlength=64 name=username onchange=validateLogin(1) onkeyup=validateLogin(1,event) />
49 + <input id=username title="Username" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" {{{autocomplete}}}="username" placeholder="Username" type=text maxlength=64 name=username onchange=validateLogin(1) onkeyup=validateLogin(1,event) />
50 </td>
51 </tr>
52 <tr>
53 <td>
54 - <input id=password title="Password" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" autocomplete="current-password" placeholder="Password" type=password maxlength=256 name=password onchange=validateLogin(2) onkeyup=validateLogin(2,event) />
54 + <input id=password title="Password" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" {{{autocomplete}}}="current-password" placeholder="Password" type=password maxlength=256 name=password onchange=validateLogin(2) onkeyup=validateLogin(2,event) />
55 </td>
56 </tr>
57 <tr>
@@ -99,27 +99,27 @@
99 <table>
100 <tr id="nuUserRow">
101 <td id="nuUser" align=right width=100>Username:</td>
102 - <td><input id=ausername type=text autocomplete="username" name=username onchange=validateCreate(1) maxlength=64 onkeydown=haltReturn(event) onkeyup=validateCreate(1,event) /></td>
102 + <td><input id=ausername type=text {{{autocomplete}}}="username" name=username onchange=validateCreate(1) maxlength=64 onkeydown=haltReturn(event) onkeyup=validateCreate(1,event) /></td>
103 </tr>
104 <tr>
105 <td id="nuEmail" align=right width=100>Email:</td>
106 - <td><input id=aemail type=text autocomplete="email" inputmode="email" name=email onchange=validateCreate(2) maxlength=256 onkeydown=haltReturn(event) onkeyup=validateCreate(2,event) /></td>
106 + <td><input id=aemail type=text {{{autocomplete}}}="email" inputmode="email" name=email onchange=validateCreate(2) maxlength=256 onkeydown=haltReturn(event) onkeyup=validateCreate(2,event) /></td>
107 </tr>
108 <tr>
109 <td id="nuPass1" align=right>Password:</td>
110 - <td><input id=apassword1 type=password name=password1 autocomplete="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(3,event) onkeyup=validateCreate(3,event) /></td>
110 + <td><input id=apassword1 type=password name=password1 {{{autocomplete}}}="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(3,event) onkeyup=validateCreate(3,event) /></td>
111 </tr>
112 <tr>
113 <td id="nuPass2" align=right>Password:</td>
114 - <td><input id=apassword2 type=password name=password2 autocomplete="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(4,event) onkeyup=validateCreate(4,event) /></td>
114 + <td><input id=apassword2 type=password name=password2 {{{autocomplete}}}="new-password" maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(4,event) onkeyup=validateCreate(4,event) /></td>
115 </tr>
116 <tr id="createPanelHint" style="display:none">
117 <td id="nuHint" align=right>Password Hint:</td>
118 - <td><input id=apasswordhint type=text name=apasswordhint autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(5,event) onkeyup=validateCreate(5,event) /></td>
118 + <td><input id=apasswordhint type=text name=apasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(5,event) onkeyup=validateCreate(5,event) /></td>
119 </tr>
120 <tr id=newAccountPass title="Enter the account creation token">
121 <td id="nuToken" align=right>Creation Token:</td>
122 - <td><input id=anewaccountpass type=password name=anewaccountpass autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(6,event) onkeyup=validateCreate(6,event) /></td>
122 + <td><input id=anewaccountpass type=password name=anewaccountpass {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(6,event) onkeyup=validateCreate(6,event) /></td>
123 </tr>
124 <tr>
125 <td colspan=2>
@@ -142,7 +142,7 @@
142 <table style="width:100%;margin-top:4px;margin-bottom:4px">
143 <tr>
144 <td>
145 - <input id=remail title="Email" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" autocomplete="username" placeholder="Email" type=text maxlength=256 name=email onchange=validateReset() onkeyup=validateReset(event) />
145 + <input id=remail title="Email" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" {{{autocomplete}}}="username" placeholder="Email" type=text maxlength=256 name=email onchange=validateReset() onkeyup=validateReset(event) />
146 </td>
147 </tr>
148 <tr>
@@ -156,14 +156,14 @@
156 </form>
157 </div>
158 <div id=tokenpanel style="display:none">
159 - <form method=post autocomplete=off>
159 + <form method=post {{{autocomplete}}}=off>
160 <input type=hidden name=action value=tokenlogin />
161 <input type=hidden name=hwstate value="{{{hwstate}}}" />
162 <div id=message4></div>
163 <table style="width:100%">
164 <tr>
165 <td>
166 - <input id=tokenInput autocomplete="one-time-code" title="Token" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" placeholder="Token" type=text maxlength=50 name=token onchange=checkToken(event) onpaste=resetCheckToken(event) onkeyup=checkToken(event) onkeydown=checkToken(event) /><br />
166 + <input id=tokenInput {{{autocomplete}}}="one-time-code" title="Token" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" placeholder="Token" type=text maxlength=50 name=token onchange=checkToken(event) onpaste=resetCheckToken(event) onkeyup=checkToken(event) onkeydown=checkToken(event) /><br />
167 <input id=hwtokenInput type=text name=hwtoken style="display:none" />
168 </td>
169 </tr>
@@ -201,7 +201,7 @@
201 <table style="width:100%">
202 <tr>
203 <td>
204 - <input id=resetTokenInput autocomplete="one-time-code" title="Token" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" placeholder="Token" type=text maxlength=50 name=token onchange=resetCheckToken(event) onpaste=resetCheckToken(event) onkeyup=resetCheckToken(event) onkeydown=resetCheckToken(event) /><br />
204 + <input id=resetTokenInput {{{autocomplete}}}="one-time-code" title="Token" style="box-sizing:border-box;width:280px;border:0;border-radius:4px;padding:8px;background-color:#FFF8CC" placeholder="Token" type=text maxlength=50 name=token onchange=resetCheckToken(event) onpaste=resetCheckToken(event) onkeyup=resetCheckToken(event) onkeydown=resetCheckToken(event) /><br />
205 <input id=resetHwtokenInput type=text name=hwtoken style="display:none" />
206 </td>
207 </tr>
@@ -235,15 +235,15 @@
235 <table>
236 <tr>
237 <td id="rnuPass1" width=100 align=right>Password:</td>
238 - <td><input id=rapassword1 type=password name=rpassword1 autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(3,event) onkeyup=validatePassReset(3,event) /></td>
238 + <td><input id=rapassword1 type=password name=rpassword1 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(3,event) onkeyup=validatePassReset(3,event) /></td>
239 </tr>
240 <tr>
241 <td id="rnuPass2" align=right>Password:</td>
242 - <td><input id=rapassword2 type=password name=rpassword2 autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(4,event) onkeyup=validatePassReset(4,event) /></td>
242 + <td><input id=rapassword2 type=password name=rpassword2 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(4,event) onkeyup=validatePassReset(4,event) /></td>
243 </tr>
244 <tr id="resetpasswordpanelHint" style="display:none">
245 <td id="rnuHint" align=right>Password Hint:</td>
246 - <td><input id=rapasswordhint type=text name=rpasswordhint autocomplete=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(5,event) onkeyup=validatePassReset(5,event) /></td>
246 + <td><input id=rapasswordhint type=text name=rpasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(5,event) onkeyup=validatePassReset(5,event) /></td>
247 </tr>
248 <tr>
249 <td colspan=2>
@@ -798,7 +798,7 @@
798
799 function changeEmailAddress() {
800 var email = Q('unconfirmedEmail').innerHTML;
801 - var x = addHtmlValue("Email", '<input id=dp1email style=width:230px maxlength=256 value="' + email + '" autocomplete=off onchange=validateEmailAddress() onkeyup=validateEmailAddress() />');
801 + var x = addHtmlValue("Email", '<input id=dp1email style=width:230px maxlength=256 value="' + email + '" {{{autocomplete}}}=off onchange=validateEmailAddress() onkeyup=validateEmailAddress() />');
802 setDialogMode(1, "Email Confirmation", 3, changeEmailAddressEx, x);
803 validateEmailAddress();
804 }
webserver.js
+1
@@ -6510,6 +6510,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6510 }
6511 xargs.extitle = encodeURIComponent(xargs.title).split('\'').join('\\\'');
6512 xargs.domainurl = domain.url;
6513 + xargs.autocomplete = (domain.autocomplete === false)?'x':'autocomplete'; // This option allows autocomplete to be turned off on the login page.
6514 if (typeof domain.hide == 'number') { xargs.hide = domain.hide; }
6515 return xargs;
6516 }