Skip to content
Snippets Groups Projects
Commit 56ece68c authored by deuce's avatar deuce
Browse files

Honour the new user question toggles for the system.

parent 7ba3bfcd
No related branches found
No related tags found
No related merge requests found
...@@ -4,11 +4,15 @@ ...@@ -4,11 +4,15 @@
/* $Id$ */ /* $Id$ */
var required_str="*";
var optional_str="";
load("sbbsdefs.js"); load("sbbsdefs.js");
load("html_inc/template.ssjs"); load("html_inc/template.ssjs");
var fields=new Array("alias","name","handle","netmail","address","location","zipcode","phone","birthdate","gender"); template.required=required_str;
var required=new Array("name","netmail","address","location","zipcode","phone","birthdate","gender"); var fields=new Array("alias","name","handle","netmail","address","location","zipcode","phone","birthdate","gender", "shell", "editor");
var required=new Array;
var maxlengths={alias:25,name:25,handle:8,netmail:60,address:30,location:30,zipcode:10,phone:12,birthdate:8,gender:1}; var maxlengths={alias:25,name:25,handle:8,netmail:60,address:30,location:30,zipcode:10,phone:12,birthdate:8,gender:1};
var err=0; var err=0;
template.err_message=''; template.err_message='';
...@@ -20,9 +24,117 @@ template.title=system.name+" new user signup"; ...@@ -20,9 +24,117 @@ template.title=system.name+" new user signup";
template.posted=http_request.query; template.posted=http_request.query;
template.errs=new Object; template.errs=new Object;
/* System is closed to new users */
if(system.settings & SYS_CLOSED) {
write_template("header.inc");
write("This system is closed to new users, sorry.");
write_template("footer.inc");
exit(0);
}
/* Set up fields and required array */
template.RealNameIs="Real Name";
if(system.newuser_questions & UQ_ALIASES) {
required.push("alias");
template.alias_required=required_str;
}
else
template.alias_required=optional_str;
if(system.newuser_questions & UQ_LOCATION) {
required.push("location");
template.loc_required=required_str;
}
else
template.loc_required=optional_str;
if(system.newuser_questions & UQ_ADDRESS) {
required.push("zipcode");
template.zip_required=required_str;
required.push("address");
template.addr_required=required_str;
}
else {
template.zip_required=optional_str;
template.addr_required=optional_str;
}
if(system.newuser_questions & UQ_PHONE) {
required.push("phone");
template.ph_required=required_str;
}
else
template.ph_required=optional_str;
if(system.newuser_questions & UQ_HANDLE) {
required.push("handle");
template.handle_required=required_str;
}
else
template.handle_required=optional_str;
if(system.newuser_questions & UQ_SEX) {
required.push("gender");
template.sex_required=required_str;
}
else
template.sex_required=optional_str;
if(system.newuser_questions & UQ_BIRTH) {
required.push("birthdate");
template.bd_required=required_str;
}
else
template.bd_required=optional_str;
if(system.newuser_questions & UQ_REALNAME) {
required.push("name");
template.name_required=required_str;
}
else
template.name_required=optional_str;
if(!(system.newuser_questions & UQ_ALIASES && system.newuser_questions & UQ_REALNAME)) {
if(system.newuser_questions & UQ_COMPANY) {
template.RealNameIs="Company Name";
required.push("name");
template.name_required=required_str;
}
}
/* List of shells is on the ToDo list */
http_request.query.shell=system.newuser_command_shell;
if(system.newuser_questions & UQ_CMDSHELL) {
required.push("shell");
template.shell_required=required_str;
}
else
template.shell_required=optional_str;
if(system.newuser_questions & UQ_XEDIT) {
required.push("editor");
template.editor_required=required_str;
}
else
template.editor_required=optional_str;
if(system.newuser_questions & UQ_NONETMAIL)
template.email_required=optional_str;
else {
required.push("email");
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 */ /* Plain GET with no query, just display the sign-up page */
if(http_request.method=='GET') { if(http_request.method=='GET') {
template.gender_list='<select name="gender">\n<option value="M">Male</option>\n<option value="F">Female</option>\n</select>'; if(system.newuser_questions & UQ_SEX)
template.gender_list='<select name="gender">\n<option value="M">Male</option>\n<option value="F">Female</option>\n</select>';
else
template.gender_list='<select name="gender">\n<option value="">Unspecified</option>\n<option value="M">Male</option>\n<option value="F">Female</option>\n</select>';
template.shell_list=gen_shell_list(system.newuser_command_shell);
template.editor_list=gen_editor_list(system.newuser_editor);
showform(); showform();
} }
else { else {
...@@ -30,15 +142,28 @@ else { ...@@ -30,15 +142,28 @@ else {
if(http_request.query["gender"] != undefined) if(http_request.query["gender"] != undefined)
gender=http_request.query["gender"].toString().toUpperCase(); gender=http_request.query["gender"].toString().toUpperCase();
template.gender_list='<select name="gender">\n'; template.gender_list='<select name="gender">\n';
if(!(system.newuser_questions & UQ_SEX))
template.gender_list+='<option value=""'+(gender==''?' selected':'')+'>Unspecified</option>\n';
template.gender_list+='<option value="M"'+(gender=='M'?' selected':'')+'>Male</option>\n'; template.gender_list+='<option value="M"'+(gender=='M'?' selected':'')+'>Male</option>\n';
template.gender_list+='<option value="F"'+(gender=='F'?' selected':'')+'>Female</option>\n</select>'; template.gender_list+='<option value="F"'+(gender=='F'?' selected':'')+'>Female</option>\n</select>';
if(http_request.query["shell"] != undefined)
template.shell_list=gen_shell_list(http_request.query.shell[0]);
else
template.shell_list=gen_shell_list(system.newuser_command_shell);
if(http_request.query["editor"] != undefined)
template.editor_list=gen_editor_list(http_request.query.editor[0]);
else
template.editor_list=gen_editor_list(system.newuser_editor);
/* POST request... should be a valid application */ /* POST request... should be a valid application */
for(field in fields) { for(field in fields) {
if(http_request.query[fields[field]]==undefined) { 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>'; template.gender_list='<select name="gender">\n<option value="M">Male</option>\n<option value="F">Female</option>\n</select>';
err=1; err=1;
template.errs[fields[field]]="MISSING"; template.errs[fields[field]]="MISSING";
write(fields[field]);
write("Fields: "+fields);
template.err_message+="Some fields missing from POST data... possible browser issue.\r\n"; template.err_message+="Some fields missing from POST data... possible browser issue.\r\n";
} }
if(err) if(err)
...@@ -84,7 +209,7 @@ else { ...@@ -84,7 +209,7 @@ else {
} }
} }
} }
if(system.new_user_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; err=1;
template.err_message+="Please choose a different chat handle\r\n"; template.err_message+="Please choose a different chat handle\r\n";
template.errs["handle"]="Duplicate handle"; template.errs["handle"]="Duplicate handle";
...@@ -105,37 +230,39 @@ else { ...@@ -105,37 +230,39 @@ else {
} }
/* Generate and send email */ /* Generate and send email */
var hdrs = new Object; if(http_request.query.netmail != undefined && http_request.query.netmail != '') {
hdrs.to=http_request.query.name; var hdrs = new Object;
hdrs.to_net_type=netaddr_type(http_request.query.netmail); hdrs.to=http_request.query.name;
if(hdrs.to_net_type!=NET_NONE) { hdrs.to_net_type=netaddr_type(http_request.query.netmail);
hdrs.to_net_addr=http_request.query.netmail; if(hdrs.to_net_type!=NET_NONE) {
} hdrs.to_net_addr=http_request.query.netmail;
else { }
err=1; else {
template.err_message+="Cannot mail password to new email address!\r\n"; err=1;
showform(); template.err_message+="Cannot mail password to new email address!\r\n";
} showform();
hdrs.from=system.name; }
hdrs.from_net_addr='sysop@'+system.inet_addr; hdrs.from=system.name;
hdrs.from_net_type=NET_INTERNET; hdrs.from_net_addr='sysop@'+system.inet_addr;
hdrs.subject="New user signup"; hdrs.from_net_type=NET_INTERNET;
var msgbase = new MsgBase("mail"); hdrs.subject="New user signup";
if(msgbase.open!=undefined && msgbase.open()==false) { var msgbase = new MsgBase("mail");
err=1; if(msgbase.open!=undefined && msgbase.open()==false) {
template.err_message+=msgbase.last_error+"\r\n"; err=1;
showform(); template.err_message+=msgbase.last_error+"\r\n";
} showform();
var msg="Your account on "+system.name+" has been created!\n\n"; }
msg += "User name: "+http_request.query.name+"\n"; var msg="Your account on "+system.name+" has been created!\n\n";
msg += "Password: "+newpw+"\n"; msg += "User name: "+http_request.query.name+"\n";
msg += "Password: "+newpw+"\n";
if(!msgbase.save_msg(hdrs,msg)) { if(!msgbase.save_msg(hdrs,msg)) {
err=1; err=1;
template.err_message+=msgbase.last_error+"\r\n"; template.err_message+=msgbase.last_error+"\r\n";
showform(); showform();
}
msgbase.close();
} }
msgbase.close();
nuser=system.new_user(http_request.query.name); nuser=system.new_user(http_request.query.name);
nuser.name=http_request.query.name; nuser.name=http_request.query.name;
...@@ -149,10 +276,15 @@ else { ...@@ -149,10 +276,15 @@ else {
nuser.gender=http_request.query.gender; nuser.gender=http_request.query.gender;
nuser.security.password=newpw; nuser.security.password=newpw;
nuser.phone=http_request.query.phone; nuser.phone=http_request.query.phone;
nuser.shell=http_request.query.shell;
nuser.editor=http_request.query.editor;
template.title="New user created"; template.title="New user created";
write_template("header.inc"); write_template("header.inc");
write("Your account has been created and the password has been mailed to: "+http_request.query.netmail); if(http_request.query.netmail != undefined && http_request.query.netmail != '')
write("Your account has been created and the password has been mailed to: "+http_request.query.netmail);
else
write("Your account has been created and the password is: "+newpw);
write_template("footer.inc"); write_template("footer.inc");
} }
...@@ -171,3 +303,20 @@ function genpass() { ...@@ -171,3 +303,20 @@ function genpass() {
} }
return(pw); return(pw);
} }
/* List of shells is on the ToDo list */
function gen_shell_list(current) {
return("");
}
/* List of editors is on the ToDo list */
function gen_editor_list(current) {
var retval="";
retval='<select name="editor">\n';
retval+='<option value=""'+(current==''?' selected':'')+'>Internal Editor</option>\n';
for(ed in xtrn_area.editor) {
retval+='<option value="'+ed+'"'+(current==ed?' selected':'')+'>'+xtrn_area.editor[ed].name+'</option>\n';
}
retval+='</select>';
return(retval);
}
<!-- $Id$ --> <!-- $Id$ -->
<p class="navigation"><a class="navigation" href="http://^^JS:system.inet_addr^^/">Home</a> : New User Application</p> <p class="navigation"><a class="navigation" href="http://^^JS:system.inet_addr^^/">Home</a> : New User Application</p>
<center>
(%%required%% indicates required fields)<br>
%%err_message%% %%err_message%%
</center>
<form action="newuser.ssjs" method="post"> <form action="newuser.ssjs" method="post">
<table class="newuser" cellpadding="0" cellspacing="2"> <table class="newuser" cellpadding="0" cellspacing="2">
<tr> <tr>
<td class="newuser" align="right">%%errs:alias%% Alias:</td> <td class="newuser" align="right">%%errs:alias%% %%alias_required%% Alias:</td>
<td class="newuser" align="left"><input type="text" name="alias" size="25" maxlength="25" value="%%posted:alias%%" /></td> <td class="newuser" align="left"><input type="text" name="alias" size="25" maxlength="25" value="%%posted:alias%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:name%% Real Name:</td> <td class="newuser" align="right">%%errs:name%% %%name_required%% %%RealNameIs%%:</td>
<td class="newuser" align="left"><input type="text" name="name" size="25" maxlength="25" value="%%posted:name%%" /></td> <td class="newuser" align="left"><input type="text" name="name" size="25" maxlength="25" value="%%posted:name%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:handle%% Chat Handle:</td> <td class="newuser" align="right">%%errs:handle%% %%handle_required%% Chat Handle:</td>
<td class="newuser" align="left"><input type="text" name="handle" size="8" maxlength="8" value="%%posted:handle%%" /></td> <td class="newuser" align="left"><input type="text" name="handle" size="8" maxlength="8" value="%%posted:handle%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:netmail%% E-Mail Address:</td> <td class="newuser" align="right">%%errs:netmail%% %%email_required%% E-Mail Address:</td>
<td class="newuser" align="left"><input type="text" name="netmail" size="60" maxlength="60" value="%%posted:netmail%%" /></td> <td class="newuser" align="left"><input type="text" name="netmail" size="60" maxlength="60" value="%%posted:netmail%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:address%% Mailing Address:</td> <td class="newuser" align="right">%%errs:address%% %%addr_required%% Mailing Address:</td>
<td class="newuser" align="left"><input type="text" name="address" size="30" maxlength="30" value="%%posted:address%%" /></td> <td class="newuser" align="left"><input type="text" name="address" size="30" maxlength="30" value="%%posted:address%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:location%% City and Province/State:</td> <td class="newuser" align="right">%%errs:location%% %%loc_required%% City and Province/State:</td>
<td class="newuser" align="left"><input type="text" name="location" size="30" maxlength="30" value="%%posted:location%%" /></td> <td class="newuser" align="left"><input type="text" name="location" size="30" maxlength="30" value="%%posted:location%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:zipcode%% Postal/Zip Code:</td> <td class="newuser" align="right">%%errs:zipcode%% %%zip_required%% Postal/Zip Code:</td>
<td class="newuser" align="left"><input type="text" name="zipcode" size="10" maxlength="10" value="%%posted:zipcode%%" /></td> <td class="newuser" align="left"><input type="text" name="zipcode" size="10" maxlength="10" value="%%posted:zipcode%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:phone%% Phone Number (###-###-####):</td> <td class="newuser" align="right">%%errs:phone%% %%ph_required%% Phone Number (###-###-####):</td>
<td class="newuser" align="left"><input type="text" name="phone" size="12" maxlength="12" value="%%posted:phone%%" /></td> <td class="newuser" align="left"><input type="text" name="phone" size="12" maxlength="12" value="%%posted:phone%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:birthdate%% Birthdate (MM/DD/YY):</td> <td class="newuser" align="right">%%errs:birthdate%% %%bd_required%% Birthdate (MM/DD/YY):</td>
<td class="newuser" align="left"><input type="text" name="birthdate" size="8" maxlength="8" value="%%posted:birthdate%%" /></td> <td class="newuser" align="left"><input type="text" name="birthdate" size="8" maxlength="8" value="%%posted:birthdate%%" /></td>
</tr> </tr>
<tr> <tr>
<td class="newuser" align="right">%%errs:gender%% Gender:</td> <td class="newuser" align="right">%%errs:gender%% %%sex_required%% Gender:</td>
<td class="newuser">@@gender_list@@</td> <td class="newuser">@@gender_list@@</td>
</tr> </tr>
<tr>
<td class="newuser" align="right">%%errs:editor%% %%editor_required%% External Editor:</td>
<td class="newuser">@@editor_list@@</td>
</tr>
<tr> <tr>
<td class="newuser">&nbsp;</td> <td class="newuser">&nbsp;</td>
<td class="newuser"> <td class="newuser">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment