<% Group.requireGroupNum 0; @header [("title", ["Group management"])]; ref showNormal = true; if $"cmd" = "Create" then if not (Group.validGroupName ($"name")) then %>

Invalid group name

<% else switch Group.groupNameToId ($"name") of SOME _ => %>

Group name already in use

<% | NONE => val id = Group.addGroup ($"name") %>

Group added

<% end end elseif $"mod" <> "" then showNormal := false; val group = Group.lookupGroup (Web.stoi ($"mod")) %>

Modify group record

">
Name:
<% elseif $"cmd" = "Save" then val group = Group.lookupGroup (Web.stoi ($"id")); Group.modGroup {group with name = $"name"} %>

Group record saved.

<% elseif $"del" <> "" then showNormal := false; val group = Group.lookupGroup (Web.stoi ($"del")) %>

Are you sure you want to delete group <% #name group %>?

">Yes, delete <% #name group %>! <% elseif $"del2" <> "" then val group = Group.lookupGroup (Web.stoi ($"del2")); Group.deleteGroup (Web.stoi ($"del2")) %>

<% #name group %> deleted!

<% elseif $"cmd" = "Grant" then Group.addToGroup {usr = Web.stoi ($"usr"), grp = Web.stoi ($"grp")} %>

Membership granted.

<% elseif $"revoke" <> "" then Group.removeFromGroup {usr = Web.stoi ($"revoke"), grp = Web.stoi ($"grp")} %>

Membership revoked.

<% end %> <% if showNormal then %>

Create group

Name:

Grant membership

Group:
Member:

Manage current groups

<% foreach group in Group.listGroups () do %> <% foreach user in Group.groupMembers (#id group) do %> <% end end %>
<% Web.html (#name group) %> [Modify] [Delete]
<% Web.html (#name user) %> [Revoke]
<% end %> <% @footer [] %>