Join script should rule out retired usernames
[bpt/portal.git] / domain.mlt
CommitLineData
5da9f4a9
AC
1<% @header [("title", ["Domain set-up requests"])];
2
3val admin = Group.inGroupName "server";
4
5if $"req" <> "" then
6 val dom = $"req";
06e14693
AC
7 if not (Util.validDomain dom) then
8 %><h3>Invalid domain name</h3><%
9 elseif String.isPrefix "www." dom and $"want_www" = "" then
10 val base = String.extract (dom, 4, NONE)
11 %><h3>Are you sure you want to request a domain that begins with "www."?</h3>
12 <p>You probably meant to request <tt><% base %></tt> instead, which would grant you the ability to configure <tt><% dom %></tt> as well. Unless you've registered <tt><% dom %></tt> directly with your registrar, you will be unable to configure it without the right to set nameservers for <tt><% base %></tt>.</p>
13 <p><a href="?req=<% Web.urlEncode dom %>&want_www=1&msg=<% Web.urlEncode ($"msg") %>">Yes, go ahead and place the request!</a></p><%
14 else
5da9f4a9
AC
15 val id = Domain.add (Init.getUserId(), dom, $"msg");
16 if not (Domain.notifyNew id) then
b6dd1aaf 17 %><h3>Error sending e-mail notification</h3><%
5da9f4a9 18 end
b6dd1aaf 19 %><h3>Request added</h3><%
5da9f4a9
AC
20 end
21
22elseif $"cmd" = "open" then
b6dd1aaf 23 %><h3>Open requests</h3>
5da9f4a9
AC
24 <a href="domain?cmd=list">List all requests</a><%
25
26 foreach (name, req) in Domain.listOpen () do %>
27<br><hr><br>
b6dd1aaf
AC
28<table class="blanks">
29<tr> <td>By:</td> <td><a href="user?id=<% #usr req %>"><% name %></a></td> </tr>
6b8b767b 30<tr> <td>Time:</td> <td><% #stamp req %> (<% Util.diffFromNow (#stamp req) %> ago)</td> </tr>
b6dd1aaf
AC
31<tr> <td>Domain:</td> <td><a href="<% Util.whoisUrl (#data req) %>"><% #data req %></a></td> </tr>
32<tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
5da9f4a9
AC
33</table>
34
35<% if admin then %>
36 <br>
37 <a href="domain?mod=<% #id req %>">[Modify]</a>
38 <a href="domain?del=<% #id req %>">[Delete]</a><br>
ba5de264 39 To set up, run: <tt>domtool-admin grant <% name %> domain <% #data req %></tt>
5da9f4a9
AC
40<% end %>
41
42<% end
43
44elseif $"cmd" = "list" then
b6dd1aaf 45 %><h3>All requests</h3><%
5da9f4a9
AC
46
47 foreach (name, req) in Domain.list () do %>
48<br><hr><br>
b6dd1aaf
AC
49<table class="blanks">
50<tr> <td>By:</td> <td colspan="2"><a href="user?id=<% #usr req %>"><% name %></a></td> </tr>
6b8b767b 51<tr> <td>Time:</td> <td colspan="2"><% #stamp req %> (<% Util.diffFromNow (#stamp req) %> ago)</td> </tr>
b6dd1aaf
AC
52<tr> <td>Domain:</td> <td><a href="<% Util.whoisUrl (#data req) %>"><% #data req %></a></td> </tr>
53<tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
5da9f4a9
AC
54</table>
55
56<% if admin then %>
57 <br>
58 <a href="domain?mod=<% #id req %>">[Modify]</a>
59 <a href="domain?del=<% #id req %>">[Delete]</a>
60<% end %>
61
62<% end
63
64elseif $"mod" <> "" then
65 Group.requireGroupName "server";
66 val id = Web.stoi ($"mod");
67 val req = Domain.lookup id;
68 val user = Init.lookupUser (#usr req) %>
b6dd1aaf 69<h3>Handle request</h3>
5da9f4a9 70
a4ccdb5e 71<form action="domain" method="post">
5da9f4a9 72<input type="hidden" name="save" value="<% id %>">
b6dd1aaf
AC
73<table class="blanks">
74<tr> <td>Requestor:</td> <td><a href="user?id=<% #usr req %>"><% #name user %></a></td> </tr>
6b8b767b 75<tr> <td>Time:</td> <td><% #stamp req %> (<% Util.diffFromNow (#stamp req) %> ago)</td> </tr>
b6dd1aaf 76<tr> <td>Status</b>:</td> <td><select name="status">
5da9f4a9
AC
77 <option value="0"<% if #status req = Domain.NEW then %> selected<% end %>>New</option>
78 <option value="1"<% if #status req = Domain.INSTALLED then %> selected<% end %>>Installed</option>
79 <option value="2"<% if #status req = Domain.REJECTED then %> selected<% end %>>Rejected</option>
80</select></td> </tr>
b6dd1aaf
AC
81<tr> <td>Domain:</td> <td><input name="dom" value="<% #data req %>"></td> </tr>
82<tr> <td>Message:</td> <td><textarea name="msg" rows="10" cols="80" wrap="soft"><% Web.html (#msg req) %></textarea></td> </tr>
5da9f4a9
AC
83<tr> <td><input type="submit" value="Save"></td> </tr>
84</table>
85</form>
86
87<% elseif $"save" <> "" then
88 Group.requireGroupName "server";
89 val id = Web.stoi ($"save");
90 val req = Domain.lookup id;
91 val oldStatus = #status req;
92 val newStatus = Domain.statusFromInt (Web.stoi ($"status"));
93 Domain.modify {req with data = $"dom", msg = $"msg", status = newStatus};
8812fb4d
AC
94 if not (Domain.notifyMod (oldStatus, newStatus, Init.getUserName(), id)) then
95 %><h3>Error sending e-mail notification</h3><%
5da9f4a9 96 end
b6dd1aaf 97 %><h3>Request modified</h3>
5da9f4a9
AC
98 Back to: <a href="domain?cmd=open">open requests</a>, <a href="domain?cmd=list">all requests</a>
99
100<% elseif $"del" <> "" then
101 Group.requireGroupName "server";
102 val id = Web.stoi ($"del");
103 val req = Domain.lookup id;
104 val user = Init.lookupUser (#usr req)
b6dd1aaf 105 %><h3>Are you sure you want to delete request by <% #name user %> for <tt><% #data req %></tt>?</h3>
5da9f4a9
AC
106 <a href="domain?del2=<% id %>">Yes, I'm sure!</a>
107
108<% elseif $"del2" <> "" then
109 Group.requireGroupName "server";
110 val id = Web.stoi ($"del2");
111 Domain.delete id
b6dd1aaf 112 %><h3>Request deleted</b><h3>
5da9f4a9
AC
113 Back to: <a href="domain?cmd=open">open requests</a>, <a href="domain?cmd=list">all requests</a>
114
115<% else %>
116
b6dd1aaf 117<h3>Request new domain</h3>
5da9f4a9 118
9d1c0e98 119Enter the full Internet domain name that you own and would like set up here. We don't do domain registration, so it is your responsibility to register this name with your registrar of choice before submitting it here. The "Reason" field is optional.
5da9f4a9 120
a4ccdb5e 121<form action="domain" method="post">
b6dd1aaf
AC
122<table class="blanks">
123<tr> <td>Domain:</td> <td><input name="req"></td> </tr>
124<tr> <td>Reason:</td> <td><textarea name="msg" rows="5" cols="80" wrap="soft"></textarea></td> </tr>
5da9f4a9
AC
125<tr> <td><input type="submit" value="Request"></td> </tr>
126</table>
127</form>
128
129<% end %>
130
131<% @footer[] %>