8d347a33 |
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 | |
23 | <form action="groups"> |
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 | |
61 | <form action="groups"> |
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 | |
70 | <form action="groups"> |
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 %> |
90 | <tr> <td><% Web.html (#name group) %>(#<% #id group %>)</td> <td></td> <td><a href="groups?mod=<% #id group %>">[Modify]</a> <a href="groups?del=<% #id group %>">[Delete]</a></td> </tr> |
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 [] %> |