<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>TODO: Unknown user</title> <script> "use strict"; function fetch(method,url,data/*?*/,creds/*?*/,cb){ if(!creds){ cb=data; data=undefined; creds=undefined; } else if(!cb){ cb=creds; creds=undefined; } if(!cb)throw new Error("No callback passed to fetch"); var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(ev){ if(xhr.readyState<4)return; cb(xhr.status,xhr.responseText); }; if(creds){ xhr.open(method,url,true,creds[0],creds[1]); } else { xhr.open(method,url); } xhr.send(data); } function asciiValid(str){ var i,c; for(i=0;i<str.length;i++){ c=str.charCodeAt(i); if(c<32||c>=127)return false; } return true; } function logoutReload(){ fetch("GET","/todo/authfail",undefined,["baduser","badpass"],function(status,body){ location.href=location.href; }); } function doCreateUser(){ var username=document.getElementById("username").value; var password=document.getElementById("password").value; var fail; [["Username",username],["Password",password]].forEach(function(name,value){ fail=true; if(value.length<3)alert(name+" too short!"); else if(value.length>32)alert(name+" too long!"); else if(!asciiValid(value))alert("Invalid "+name.toLowerCase()+"! Please use only ASCII characters."); else fail=false; }); if(fail)return; fetch("POST","/todo/createuser",undefined,[username,password],function(status,body){ if(status==200){ alert("User \""+username+"\" created successfully. Please login."); logoutReload(); } else { alert("Error: "+body); } }); } </script> <style> body{ font-family:Georgia,Times,serif; font-size:14px; } </style> </head> <body> <h1>TODO: Unknown user</h1> <p>The user you entered is not known in the system. You can use the form below to create a new user. Be aware: this system is not secure.</p> Username: <input type="text" id="username" placeholder="username"><br> Password: <input type="password" id="password" placeholder="password"><br> <input type="button" value="Create user" onclick="doCreateUser();"> <br><br> <p>You can also <input type="button" onclick="logoutReload();" value="log out and try again"> if you just can't type.</p> </body> </html>