diff --git a/web/root/newuser.ssjs b/web/root/newuser.ssjs index 69b2e97ca0c095e5ea831588e32244c8d2c49b61..87825ed193dc368fe5a7d712e6e84fd55139d929 100644 --- a/web/root/newuser.ssjs +++ b/web/root/newuser.ssjs @@ -4,6 +4,7 @@ /* $Id$ */ +/* ToDo: Deal with UQ_NODEF */ var required_str="*"; var optional_str=""; @@ -109,7 +110,8 @@ if(!(system.newuser_questions & UQ_ALIASES && system.newuser_questions & UQ_REAL } /* List of shells is on the ToDo list */ -http_request.query.shell=system.newuser_command_shell; +http_request.query.shell=new Array(); +http_request.query.shell[0]=system.newuser_command_shell.toString(); if(system.newuser_questions & UQ_CMDSHELL) { required.push("shell"); template.shell_required=required_str; @@ -131,8 +133,6 @@ else { template.email_required=required_str; } -/* ToDo: Deal with UQ_DUPREAL, UQ_NOEXASC, UQ_NODEF, UQ_NOCOMMAS, UQ_NOUPRLWR */ - /* Plain GET with no query, just display the sign-up page */ if(http_request.method=='GET') { if(system.newuser_questions & UQ_SEX) @@ -165,14 +165,37 @@ else { /* POST request... should be a valid application */ for(field in fields) { if(http_request.query[fields[field]]==undefined) { - template.gender_list='<select name="gender">\n<option value="M">Male</option>\n<option value="F">Female</option>\n</select>'; err=1; template.errs[fields[field]]="MISSING"; template.err_message+="Some fields missing from POST data... possible browser issue.\r\n"; } + else { + if((system.newuser_questions & UQ_NOEXASC) && http_request.query[fields[field]].search(/[^\x20-\x7f]/)!=-1) { + err=1; + template.errs[fields[field]]="No Extended ASCII characters are allowed"; + template.err_message+="Extended ASCII characters used.\r\n"; + } + if(!(system.newuser_questions & UQ_NOUPRLWR)) { + http_request.query[fields[field]][0]=http_request.query[fields[field]][0].replace(/^(\s*)(.)/g, + function (matched, ws, ch, offset, s) { + return(ws+ch.toUpperCase()); + }); + http_request.query[fields[field]][0]=http_request.query[fields[field]][0].replace(/(\s)(.)/g, + function (matched, ws, ch, offset, s) { + return(ws+ch.toUpperCase()); + }); + } + } if(err) showform() } + if(system.newuser_questions & UQ_LOCATION && !(system.newuser_questions & UQ_NOCOMMAS)) { + if(http_request.query["location"].search(/,./)==-1) { + err=1; + template.errs[fields[field]]='Format should be "City, State"'; + template.err_message+="Bad location format.\r\n"; + } + } for(req in required) { if(http_request.query[required[req]]==undefined || http_request.query[required[req]]=='') { @@ -226,7 +249,7 @@ else { } } } - if(system.newuser_questions & UQ_DUPHAND & system.matchuserdata(50,http_request.query["handle"])) { + if((system.newuser_questions & UQ_DUPHAND) && system.matchuserdata(50,http_request.query["handle"])) { err=1; template.err_message+="Please choose a different chat handle\r\n"; template.errs["handle"]="Duplicate handle"; @@ -236,10 +259,10 @@ else { template.err_message+="Please choose a different alias.\r\n"; template.errs["alias"]="Duplicate alias"; } - if(system.matchuser(http_request.query["name"])) { + if((system.newuser_questions & UQ_DUPREAL) && system.matchuser(http_request.query["name"])) { err=1; - template.err_message+="A user with that name already exists.\r\n"; - template.errs["name"]="Duplicate name"; + template.err_message+="A user "+(system.newuser_questions & UQ_COMPANY?"for that company":"with that name")+" already exists.\r\n"; + template.errs["name"]="Duplicate "+(system.newuser_questions & UQ_COMPANY?"company":"name"); } newpw=genpass(); if(err) {