<% val uname = $"uname"; val nodeNum = case $"nodeNum" of node => Web.stoi node; val nodeName = Init.nodeName nodeNum; val yourname = Init.getUserName (); %>
Your users:

Machines

<% foreach node in Init.listNodes () do val nodeNum = #id node; val socks = Sec.socketPerms {node = nodeNum, uname = uname}; val tpe = Sec.isTpe {node = nodeNum, uname = uname}; val cron = Sec.cronAllowed {node = nodeNum, uname = uname}; %>

<% Web.html (#name node) %>

<% Web.html (#descr node) %>

<% val rules = Sec.findFirewallRules {node = nodeNum, uname = uname}; switch rules of _::_ => %>

Your firewall rules

<% foreach rule in rules do %>
[Request deletion]

<% end end%>

Request a new firewall rule

You can find a description of rule formats on our wiki. Enter here the rule you want, without the initial user portion. We also allow all members access to some services if they are commonly requested.

When requesting a Server or ProxiedServer rule, use a port above 50000 (there is a list of allocated ports). We may grant Server requests for ports under 50000 if it can be justified, but never for a ProxiedServer.

We very rarely grant requests for Client rules that don't include remote host whitelists. For example, important security concerns make it a bad idea for us to give anybody blanket IRC permissions. Instead, request specific servers. We will refuse such requests that include networks that are popularly considered fronts for illegal activity.

Rule
Reason:
<% end %>