Join script should rule out retired usernames
[bpt/portal.git] / app / join.mlt
CommitLineData
a90da8b1
AC
1<% @header [("title", ["Apply for membership"])] %>
2
3<% if $"cmd" = "app" then
f3f3ad24 4 val minor = $"minor" <> "";
a90da8b1
AC
5 val name = $"name";
6 val rname = $"rname";
f3f3ad24 7 val gname = $"gname";
a90da8b1
AC
8 val email = $"email";
9 val forward = $"forward" <> "on";
10 val uses = $"uses";
11 val other = $"other";
12
f3f3ad24 13 if $"agree" <> "on" then
336c1154 14 %><h3>You must accept the Terms of Service!</h3><%
f3f3ad24 15 elseif name = "" then
336c1154 16 %><h3>Please enter a username</h3><%
a90da8b1 17 elseif rname = "" then
336c1154 18 %><h3>Please enter the potential member's name</h3><%
f3f3ad24 19 elseif (iff minor then gname = "" else false) then
336c1154 20 %><h3>Please enter your name, as legal guardian<b></h3><%
a90da8b1 21 elseif email = "" then
336c1154 22 %><h3>Please enter your contact e-mail address</h3><%
a90da8b1 23 elseif uses = "" then
336c1154 24 %><h3>Please enter your proposed uses</h3><%
96bd398e 25 elseif not (App.validUsername name) then
336c1154 26 %><h3>Invalid requested username</h3><%
a90da8b1 27 elseif App.userExists name then
336c1154 28 %><h3>That username is already in use.</b><h3><%
a90da8b1 29 elseif not (App.validEmail email) then
336c1154 30 %><h3>Invalid e-mail address</h3><%
eea7b531 31 else switch App.apply { name = name, rname = rname, email = email,
a2d53da2 32 gname = (case gname of "" => NONE | _ => SOME gname),
d5f8418b
AC
33 forward = forward, uses = uses, other = other,
34 paypal = (case $"paypal" of "" => NONE | s => SOME s),
35 checkout = (case $"checkout" of "" => NONE | s => SOME s) } of
eea7b531
AC
36 NONE => %><h3>Error sending confirmation e-mail</h3><%
37 | SOME unix_passwd =>
38 %><h3>Application recorded</h3>
af6e66d9 39 Check your e-mail for a message with further instructions. <h1>Save this password to use to access your new account if your application is approved:</h1>
017059c4
AC
40 <blockquote><tt><% Web.html unix_passwd %></tt></blockquote>
41 <p><b>If you don't receive a confirmation e-mail message</b>, then something is wrong, and don't expect any further progress to be made on your application unless you contact <a href="mailto:admins@hcoop.net">admins@hcoop.net</a> describing the problem. Before doing so, make sure our confirmation message didn't end up filtered as "spam."</p>
42 <% end
a90da8b1 43 end
f3f3ad24
AC
44else
45 val minor = $"minor" <> "" %>
a90da8b1
AC
46
47<form action="join" method="post">
48<input type="hidden" name="cmd" value="app">
336c1154 49<table class="blanks">
807e73d0
AC
50<tr> <td width="25%">Desired username:</td> <td width="75%"><input name="name"><br>
51 Please follow usual UNIX conventions, including limiting yourself to lowercase letters and at most 8 characters. It's helpful to pick a name you wouldn't mind using to identify yourself to both strangers and friends. Something based on your "real" name is a safe bet.<br>
52 You don't need to worry about whether or not the username you want is already taken. This application system will let you know if that is the case. You can probably use a shorter and simpler name than you are accustomed to getting at larger services, so we encourage you to try such names first.</td> </tr>
53<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
f3f3ad24 54<% if minor then %>
807e73d0
AC
55<tr> <td>New member's "real" name:</td> <td><input name="rname" size="50"></td> </tr>
56<tr> <td>Legal guardian's name:</td> <td><input name="gname"><br> Please enter your full name, as you would on a normal, legally binding contract.</td></tr>
f3f3ad24 57<% else %>
807e73d0 58<tr> <td>Your "real" name:</td> <td><input name="rname"><br> Please enter your full name, as you would on a normal, legally binding contract.</td></tr>
f3f3ad24 59<% end %>
807e73d0 60<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
d5f8418b 61<tr> <td>Contact e-mail address</td> <td><input name="email" size="50"></td> </tr>
807e73d0 62<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
d5f8418b
AC
63<tr> <td><a href="http://www.paypal.com/">PayPal</a> account e-mail:</td> <td><input name="paypal" size="50"></td> </tr>
64<tr> <td><a href="http://checkout.google.com/">Google Checkout</a> account e-mail:</td> <td><input name="checkout" size="50"><br>
65 These payment service provider e-mail addresses are optional. You will probably end up using one or the other of these providers if your application is approved, and entering here the e-mail address that you've used to sign up with that provider will help us process your payment accurately and promptly. E-mail addresses you enter here should match those seen by recipients of payments that you send.</td> </tr>
807e73d0 66<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
d5f8418b 67<tr> <td><input type="checkbox" name="forward"></td> <td>Check this box if you would like to use HCoop as your primary e-mail provider.<br>
f0fc5bd9 68 If you don't select this option and you are approved to join, e-mail to your HCoop account will be forwarded to the contact address you provided above (without preserving a local copy on HCoop servers).<br>
d5f8418b 69 You can change this option later, but we'll probably have helpful things to e-mail you as soon as you join. It's important that we be able to reach members reliably, so please don't decide to use us as your primary e-mail provider unless you can commit to checking your HCoop mailbox just as often as any other personal accounts you have.</td> </tr>
807e73d0 70<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
d5f8418b 71<tr> <td>How do you plan to use a HCoop membership?</td> <td><textarea name="uses" rows="5" cols="80" wrap="soft"></textarea></td> </tr>
336c1154 72<tr> <td>Any other information about yourself</td> <td><textarea name="other" rows="5" cols="80" wrap="soft"></textarea></td> </tr>
a90da8b1 73</table>
f3f3ad24 74
1d2cae17
AC
75<br><hr><br>
76
77You must agree to the following terms to be considered for membership:
78
f3f3ad24
AC
79<h2><b>Terms of Service Agreement</b></h2>
80
81<% App.readTosBody () %>
82
83<br><hr><br>
84
85<input type="checkbox" name="agree">
86<% if minor then App.readTosMinorAgree () else App.readTosAgree () end %>
87
88<br><br><input type="submit" value="Apply">
89
a90da8b1
AC
90</form>
91
92<% end %>
93
807e73d0 94<% @footer[] %>