+<% elseif $"cmd" = "unmigrated" then
+ showNormal := false;
+ ref negative = 0;
+ val users = Init.unmigratedUsers () %>
+
+<h3>Unmigrated members (<% length users %>)</h3>
+
+<table>
+<% foreach user in users do %>
+ <tr> <td><a href="user?id=<% #id user %>"><% Web.html (#name user) %></a></td>
+<% val bal = Balance.lookupBalance (#bal user);
+if Balance.isNegative bal then
+ negative := negative + 1
+end %>
+<td><% #amount bal %></td><td>
+<%if #name bal <> #name user then %>
+ <i><% Web.html (#name bal) %></i>
+<% end %>
+</td> </tr>
+<% end %>
+</table>
+
+<p><% negative %> have negative balances.</p>
+
+<% elseif $"cmd" = "diff" then
+ showNormal := false;
+
+ val against = (case $"against" of
+ "" => Init.usersInAfs ()
+ | x => String.tokens Char.isSpace x);
+
+ val diff = Init.usersDiff (Init.listUsernames (), against) %>
+
+<h3>User diff</h3>
+
+<h4>Only on the portal:</h4>
+<ul>
+<% foreach user in #onlyInFirst diff do %>
+ <li> <a href="user?id=<% valOf (Init.userNameToId user) %>"><% Web.html user %></a></li>
+<% end %>
+</ul>
+
+<h4>Only in AFS:</h4>
+<ul>
+<% foreach user in #onlyInSecond diff do %>
+ <li> <% Web.html user %></li>
+<% end %>
+</ul>
+
+<% end %>
+
+<% if showNormal then %>
+
+<a href="users?cmd=addform">Add a user manually</a><br>
+