Monday, November 08, 2010 at 12:04 AM.

system.verbs.builtins.mainResponder.adminSite.prefs.listAdministrators

on listAdministrators () {
	<<Changes
		<<6/27/02; 1:36:55 AM by JES
			<<Created.
	local (pta = html.getPageTableAddress ());
	pta^.flAddSubmitButton = false; //suppress the default submit button
	if defined (pta^.searchArgTable.adminUser) { //return the empty string if editing an existing member
		return ("")};
	
	local (htmltext = "", indentlevel = 0);
	on add (s) {
		htmltext = htmltext + (string.filledString ("\t", indentlevel) + s + "\r\n");};
	
	local (adrgroup = mainResponder.members.getMembershipTable ("admin"));
	local (adrusers = @adrgroup^.users);
	
	if pta^.method == "POST" {
		if defined (pta^.postArgs.deleteAdminUsers) {
			local (adr);
			for adr in @pta^.postArgs {
				if typeOf (adr^) == stringType {
					if adr^ == "x" {
						local (email = nameOf (adr^));
						local (adrmember = mainResponder.members.getMemberTable ("admin", email));
						local (name = "");
						try {name = adrmember^.personalInfo.name};
						if name != "" {
							if defined (user.people.users.[name]) {
								if people.serviceIsAttachedToUser ("Custody", name) {
									user.people.users.[name].services.Custody.enabled = false};
								if people.serviceIsAttachedToUser ("WebEdit", name) {
									user.people.users.[name].services.WebEdit.enabled = false}}};
						delete (adrmember)}}}}};
	
	add ("<p><b>Current Administrators</b></p>");
	
	add ("<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">"); indentlevel++;
	bundle { //header
		add ("<tr><td></td><td><b>Email</b></td><td><b>Name</b></td><td><b>WebEdit</b></td><td></td></tr>")};
	local (adruser);
	for adruser in adrusers {
		add ("<tr>"); indentlevel++;
		local (email = nameOf (adruser^));
		local (name = "");
		try {name = adruser^.personalInfo.name};
		local (flWebEdit = false);
		if name != "" {
			flWebEdit = suites.people.serviceIsAttachedToUser ("WebEdit", name)};
		add ("<td><input type=\"checkbox\" name=\"" + email + "\" value=\"x\" /></td>");
		add ("<td>" + string.replace (email, "@", "\\@") + "</td>");
		add ("<td>" + name + "</td>");
		if flWebEdit {
			add ("<td>enabled</td>")}
		else {
			add ("<td>disabled</td>")};
		bundle { //edit link
			add ("<td><a href=\"" + pta^.uri + "?" + pta^.searchArgs + "&adminUser=" + email + "\">edit</a></td>")};
		add ("</tr>"); indentlevel--};
	add ("</table>"); indentlevel--;
	
	add ("<p><input type=\"submit\" name=\"deleteAdminUsers\" value=\"Delete\" /></p>");
	
	return ("<tr><td colspan=\"2\">" + htmltext + "</td></tr>")}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.