<% val you = Init.getUserId (); val yourname = Init.getUserName (); val uname = case $"uname" of "" => yourname | uname => uname; val socks = Sec.socketPerms uname; val tpe = Sec.isTpe uname; val cron = Sec.cronAllowed uname; val ftp = Sec.ftpAllowed uname; ref showNormal = true; @header [("title", ["Security settings"])]; if $"cmd" = "socks" then showNormal := false; val socks = $"socks"; %>Are you sure you want to request that socket permissions for <% Web.html uname %> be changed to <% Web.html socks %>?
">Yes, place the request!<% elseif $"cmd" = "socks2" then val id = Sec.Req.add (you, String.concat [uname, ": change socket permissions to ", $"socks"], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"cmd" = "tpe" then showNormal := false; val tpe = iff $"tpe" = "yes" then "on" else "off"; %>Are you sure you want to request that trusted-path-executables-only for <% Web.html uname %> be turned <% tpe %>?
">Yes, place the request!<% elseif $"cmd" = "tpe2" then val id = Sec.Req.add (you, String.concat [uname, ": turn tpe ", $"tpe"], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"cmd" = "cron" then showNormal := false; val cron = iff $"cron" = "yes" then "enabled" else "disabled"; %>Are you sure you want to request that cron permissions for <% Web.html uname %> be <% cron %>?
">Yes, place the request!<% elseif $"cmd" = "cron2" then val cron = iff $"cron" = "enabled" then "enable" else "disable"; val id = Sec.Req.add (you, String.concat [uname, ": ", cron, " cron access"], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"cmd" = "ftp" then showNormal := false; val ftp = iff $"ftp" = "yes" then "enabled" else "disabled"; %>Are you sure you want to request that FTP permissions for <% Web.html uname %> be <% ftp %>?
">Yes, place the request!<% elseif $"cmd" = "ftp2" then val ftp = iff $"ftp" = "enabled" then "enable" else "disable"; val id = Sec.Req.add (you, String.concat [uname, ": ", ftp, " FTP access"], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"cmd" = "rule" then showNormal := false; val rule = $"rule"; %>Are you sure you want to request the firewall rule <% Web.html uname %> <% Web.html rule %>?
">Yes, place the request!<% elseif $"cmd" = "rule2" then val id = Sec.Req.add (you, String.concat ["Add firewall rule \"", uname, " ", $"rule", "\""], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"modRule" <> "" then showNormal := false; val oldRule = $"modRule"; val rule = $"rule" if oldRule = rule then %>You didn't modify the textbox for this rule before clicking the button, so there is no request to be made.<% else %>Are you sure you want to request that firewall rule <% Web.html uname %> <% Web.html oldRule %> be replaced by <% Web.html uname %> <% Web.html rule %>?
">Yes, place the request!<% end elseif $"modRule2" <> "" then val id = Sec.Req.add (you, String.concat ["Change firewall rule \"", uname, " ", $"modRule2", "\" to \"", uname, " ", $"rule", "\""], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"delRule" <> "" then showNormal := false; val oldRule = $"delRule"; %>Are you sure you want to request that firewall rule <% Web.html uname %> <% Web.html oldRule %> be deleted?
">Yes, place the request!<% elseif $"delRule2" <> "" then val id = Sec.Req.add (you, String.concat ["Delete firewall rule \"", uname, " ", $"delRule2", "\""], $"msg"); if not (Sec.Req.notifyNew id) then %>

Error sending e-mail notification

<% end %>

Request added

<% elseif $"cmd" = "open" then showNormal := false; Group.requireGroupName "server"; %>

Open requests

List all requests<% foreach (name, req) in Sec.Req.listOpen () do %>


By: <% name %>
Time: <% #stamp req %>
Request: <% #data req %>
Msg: <% Web.html (#msg req) %>

[Modify] [Delete]
<% end elseif $"cmd" = "list" then showNormal := false; Group.requireGroupName "server" %>

All requests

<% foreach (name, req) in Sec.Req.list () do %>


By: <% name %>
Time: <% #stamp req %>
Request: <% #data req %>
Reason: <% Web.html (#msg req) %>

[Modify] [Delete] <% end elseif $"mod" <> "" then showNormal := false; Group.requireGroupName "server"; val id = Web.stoi ($"mod"); val req = Sec.Req.lookup id; val user = Init.lookupUser (#usr req) %>

Handle request

Requestor: <% #name user %>
Time: <% #stamp req %>
Status:
Request:
Message:
<% elseif $"save" <> "" then showNormal := false; Group.requireGroupName "server"; val id = Web.stoi ($"save"); val req = Sec.Req.lookup id; val oldStatus = #status req; val newStatus = Sec.Req.statusFromInt (Web.stoi ($"status")); Sec.Req.modify {req with data = $"req", msg = $"msg", status = newStatus}; if oldStatus <> newStatus then if not (Sec.Req.notifyMod (oldStatus, newStatus, Init.getUserName(), id)) then %>

Error sending e-mail notification

<% end end %>

Request modified

Back to: open requests, all requests <% elseif $"del" <> "" then showNormal := false; Group.requireGroupName "server"; val id = Web.stoi ($"del"); val req = Sec.Req.lookup id; val user = Init.lookupUser (#usr req) %>

Are you sure you want to delete request by <% #name user %> for "<% #data req %>"?

Yes, I'm sure! <% elseif $"del2" <> "" then showNormal := false; Group.requireGroupName "server"; val id = Web.stoi ($"del2"); Sec.Req.delete id %>

Request deleted

Back to: open requests, all requests <% end; if showNormal then %>
Your users:

Request socket permissions change

New permissions:
Reason:

Request change to your execute permissions

Trusted path executables only?
Reason:

Request change to your cron permissions

Allowed to use cron?
Reason:

Request change to your FTP permissions

Please read our wiki instructions on file transfer before requesting FTP access. Almost everyone should use alternative protocols to FTP that provide superior security benefits.

Allowed to use FTP?
Reason:
<% val rules = Sec.findFirewallRules 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.

Please note that your firewall rule will be useless if you don't first request the corresponding socket privileges at the top of this page.

Rule
Reason:
<% end %> <% @footer[] %>