Commit | Line | Data |
---|---|---|
208e2cbc AC |
1 | <% Group.requireGroupNum 0; |
2 | ||
3 | @header [("title", ["Group management"])]; | |
4 | ||
5 | ref showNormal = true; | |
6 | ||
7 | if $"cmd" = "Create" then | |
8 | if not (Group.validGroupName ($"name")) then %> | |
9 | <h3><b>Invalid group name</b></h3> | |
10 | <% else switch Group.groupNameToId ($"name") of | |
11 | SOME _ => %> | |
12 | <h3><b>Group name already in use</b></h3> | |
13 | <% | NONE => | |
14 | val id = Group.addGroup ($"name") %> | |
15 | <h3><b>Group added</b></h3> | |
16 | <% end | |
17 | end | |
18 | elseif $"mod" <> "" then | |
19 | showNormal := false; | |
20 | val group = Group.lookupGroup (Web.stoi ($"mod")) %> | |
21 | <h3><b>Modify group record</b></h3> | |
22 | ||
a4ccdb5e | 23 | <form action="groups" method="post"> |
208e2cbc AC |
24 | <input type="hidden" name="id" value="<% $"mod" %>"> |
25 | <table> | |
26 | <tr> <td align="right"><b>Name</b>:</td> <td><input name="name" value="<% #name group %>"></td> </tr> | |
27 | <tr> <td><input type="submit" name="cmd" value="Save"></td> </tr> | |
28 | </table> | |
29 | </form> | |
30 | ||
31 | <% elseif $"cmd" = "Save" then | |
32 | val group = Group.lookupGroup (Web.stoi ($"id")); | |
33 | Group.modGroup {group with name = $"name"} %> | |
34 | <h3><b>Group record saved.</b></h3> | |
35 | ||
36 | <% elseif $"del" <> "" then | |
37 | showNormal := false; | |
38 | val group = Group.lookupGroup (Web.stoi ($"del")) %> | |
39 | <h3><b>Are you sure you want to delete group <% #name group %>?</b></h3> | |
40 | <a href="groups?del2=<% $"del" %>">Yes, delete <% #name group %>!</a> | |
41 | ||
42 | <% elseif $"del2" <> "" then | |
43 | val group = Group.lookupGroup (Web.stoi ($"del2")); | |
44 | Group.deleteGroup (Web.stoi ($"del2")) %> | |
45 | <h3><b><% #name group %> deleted!</b></h3> | |
46 | ||
47 | <% elseif $"cmd" = "Grant" then | |
48 | Group.addToGroup {usr = Web.stoi ($"usr"), grp = Web.stoi ($"grp")} %> | |
49 | <h3><b>Membership granted.</b></h3> | |
50 | ||
51 | <% elseif $"revoke" <> "" then | |
52 | Group.removeFromGroup {usr = Web.stoi ($"revoke"), grp = Web.stoi ($"grp")} %> | |
53 | <h3><b>Membership revoked.</b></h3> | |
54 | ||
55 | <% end %> | |
56 | ||
57 | <% if showNormal then %> | |
58 | ||
59 | <h3><b>Create group</b></h3> | |
60 | ||
a4ccdb5e | 61 | <form action="groups" method="post"> |
208e2cbc AC |
62 | <table> |
63 | <tr> <td align="right"><b>Name</b>:</td> <td><input name="name"></td> </tr> | |
64 | <tr> <td><input type="submit" name="cmd" value="Create"></td> </tr> | |
65 | </table> | |
66 | </form> | |
67 | ||
68 | <h3><b>Grant membership</b></h3> | |
69 | ||
a4ccdb5e | 70 | <form action="groups" method="post"> |
208e2cbc AC |
71 | <table> |
72 | <tr> <td align="right"><b>Group</b>:</td> <td><select name="grp"> | |
73 | <% foreach group in Group.listGroups () do %> | |
74 | <option value="<% #id group %>"><% Web.html (#name group) %></option> | |
75 | <% end %> | |
76 | </select></td> </tr> | |
77 | <tr> <td align="right"><b>Member</b>:</td> <td><select name="usr"> | |
78 | <% foreach user in Init.listUsers () do %> | |
79 | <option value="<% #id user %>"><% Web.html (#name user) %></option> | |
80 | <% end %> | |
81 | </select></td> </tr> | |
82 | <tr> <td><input type="submit" name="cmd" value="Grant"></td> </tr> | |
83 | </table> | |
84 | </form> | |
85 | ||
86 | <h3><b>Manage current groups</b></h3> | |
87 | ||
88 | <table> | |
89 | <% foreach group in Group.listGroups () do %> | |
b340786b | 90 | <tr> <td><% Web.html (#name group) %></td> <td></td> <td><a href="groups?mod=<% #id group %>">[Modify]</a> <a href="groups?del=<% #id group %>">[Delete]</a></td> </tr> |
208e2cbc AC |
91 | <% foreach user in Group.groupMembers (#id group) do %> |
92 | <tr> <td></td> <td><a href="user?id=<% #id user %>"><% Web.html (#name user) %></a></td> <td><a href="groups?revoke=<% #id user %>&grp=<% #id group %>">[Revoke]</a></td> </tr> | |
93 | <% end | |
94 | end %> | |
95 | </table> | |
96 | ||
97 | <% end %> | |
98 | ||
99 | <% @footer [] %> |