Voting on/approving/denying membership applications
[hcoop/portal.git] / users.mlt
CommitLineData
208e2cbc
AC
1<% Group.requireGroupNum 0;
2
3@header [("title", ["Member management"])];
4
5ref showNormal = true;
6
7if $"cmd" = "Create" then
8 if not (Init.validUsername ($"name")) then %>
9 <h3><b>Invalid username</b></h3>
10 <% else switch Init.userNameToId ($"name") of
11 SOME _ => %>
12 <h3><b>Username already in use</b></h3>
13<% | NONE =>
14 val bal =
15 (case $"bal" of
16 "" => Balance.addBalance ($"name")
17 | s => Web.stoi s);
18
19 val id = Init.addUser ($"name", $"rname", bal);
20 Group.addToGroups (id, map Web.stoi (Web.getMultiParam "grp")) %>
21 <h3><b>Member added</b></h3>
22<% end
23 end
24elseif $"mod" <> "" then
25 showNormal := false;
26 val user = Init.lookupUser (Web.stoi ($"mod")) %>
27<h3><b>Modify member record</b></h3>
28
29<form action="users">
30<input type="hidden" name="id" value="<% $"mod" %>">
31<table>
32<tr> <td align="right"><b>Name</b>:</td> <td><input name="name" value="<% #name user %>"></td> </tr>
33<tr> <td align="right"><b>Real name</b>:</td> <td><input name="rname" value="<% #rname user %>"></td> </tr>
34<tr> <td align="right" valign="top"><b>Funded by</b>:</td> <td><select name="bal">
35<% foreach bal in Balance.listBalances () do %>
36 <option value="<% #id bal %>"<% if #bal user = #id bal then %> selected <% end %>><% Web.html (#name bal) %></option>
37<% end %>
38</select></td></tr>
39<tr> <td><input type="submit" name="cmd" value="Save"></td> </tr>
40</table>
41</form>
42
43<% elseif $"cmd" = "Save" then
44 val user = Init.lookupUser (Web.stoi ($"id"));
45 Init.modUser {user with name = $"name", bal = Web.stoi ($"bal")} %>
46 <h3><b>Member record saved.</b></h3>
47
48<% elseif $"del" <> "" then
49 showNormal := false;
50 val user = Init.lookupUser (Web.stoi ($"del")) %>
51 <h3><b>Are you sure you want to delete member <a href="user?id=<% #id user %>"><% #name user %></a>?</b></h3>
52 <a href="users?del2=<% $"del" %>">Yes, delete <% #name user %>!</a>
53
54<% elseif $"del2" <> "" then
55 val user = Init.lookupUser (Web.stoi ($"del2"));
56 Init.deleteUser (Web.stoi ($"del2")) %>
57 <h3><b><% #name user %> deleted!</b></h3>
58
59<% end %>
60
61<% if showNormal then %>
62<h3><b>New member</b></h3>
63
64<form action="users">
65<table>
66<tr> <td align="right"><b>Name</b>:</td> <td><input name="name"></td> </tr>
67<tr> <td align="right"><b>Real name</b>:</td> <td><input name="rname"></td> </tr>
68<tr> <td align="right" valign="top"><b>Funded by</b>:</td> <td><select name="bal">
69 <option value="">A new balance</option>
70<% foreach bal in Balance.listBalances () do %>
71 <option value="<% #id bal %>"><% Web.html (#name bal) %></option>
72<% end %>
73</select></td></tr>
74<tr> <td align="right"><b>Groups</b>:</td> <td><select name="grp" size="5" multiple>
75<% foreach group in Group.listGroups () do %>
76 <option value="<% #id group %>"><% Web.html (#name group) %></option>
77<% end %>
78</select></td></tr>
79<tr> <td><input type="submit" name="cmd" value="Create"></td> </tr>
80</table>
81</form>
82
83<h3><b>Manage current members</b></h3>
84
85<table>
86<% foreach user in Init.listUsers () do %>
87 <tr> <td><a href="user?id=<% #id user %>"><% Web.html (#name user) %></a></td> <td>
88<% val bal = Balance.lookupBalance (#bal user);
89if #name bal <> #name user then %>
90<i><% Web.html (#name bal) %></i>
91<% end %>
92 </td><td><a href="users?mod=<% #id user %>">[Modify]</a> <a href="users?del=<% #id user %>">[Delete]</a></td> </tr>
93<% end %>
94</table>
95
96<% end %>
97
98<% @footer [] %>