KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > freecs > external > WebadminRequestHandler


1 package freecs.external;
2
3 import freecs.Server;
4 import freecs.content.BanObject;
5 import freecs.content.ContentContainer;
6 import freecs.core.Group;
7 import freecs.core.GroupManager;
8 import freecs.core.User;
9 import freecs.core.UserManager;
10 import freecs.interfaces.IRequest;
11 import freecs.layout.Template;
12 import freecs.layout.TemplateSet;
13
14 public class WebadminRequestHandler extends AbstractRequestHandler {
15
16     public WebadminRequestHandler(String JavaDoc handlerName) {
17         super(handlerName);
18     }
19     
20     public void handle(IRequest req, ContentContainer c) throws AccessForbiddenException {
21         checkAccessIp(req, c);
22         checkAccessAuth(req, c);
23         
24         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
25         renderTemplate(req, "admin_header", sb);
26         
27         String JavaDoc action = req.getValue("do");
28         if ("removeuser".equalsIgnoreCase(action)) {
29             removeUser(req, sb);
30         } else if ("removeban".equalsIgnoreCase(action)) {
31             removeBan(req, sb);
32         } else if ("sendmessage".equalsIgnoreCase(action)) {
33             sendMessage(req, sb);
34         } else if ("sendmessagetouser".equalsIgnoreCase(action)) {
35             sendMessageToUser(req, sb);
36         } else if ("sendmessagetogroup".equalsIgnoreCase(action)) {
37             sendMessageToGroup(req, sb);
38         } else if ("grouplist".equalsIgnoreCase(action)) {
39             renderGrouplist(req, sb);
40         } else if ("userlist".equalsIgnoreCase(action)) {
41             renderUserlist(req, sb);
42         } else if ("searchuser".equalsIgnoreCase(action)) {
43             searchUser(req, sb);
44         } else if ("banlist".equalsIgnoreCase(action)) {
45             renderBanlist(req, sb);
46         } else if ("configoverview".equalsIgnoreCase(action)) {
47             renderConfigoverview(req, sb);
48         } else if ("shutdown".equalsIgnoreCase(action)) {
49             // Server.srv.startShutdown();
50
System.exit(0);
51         } else {
52             sb.append("<form action=/ADMIN method=post>");
53             sb.append("send message: <input type=text name=msg><input type=submit value=send>");
54             sb.append("<input type=hidden name=do value=sendmessage></form>");
55             sb.append("<form action=/ADMIN method=post>");
56             sb.append("send message: <input type=text name=msg><br>");
57             sb.append(" to user: <input type=text name=username><input type=submit value=send>");
58             sb.append("<input type=hidden name=do value=sendmessagetouser></form>");
59             sb.append("<form action=/ADMIN method=post>");
60             sb.append("send message: <input type=text name=msg><br>");
61             sb.append(" to group: <input type=text name=groupname><input type=submit value=send>");
62             sb.append("<input type=hidden name=do value=sendmessagetogroup></form>");
63             
64             sb.append("<form action=/ADMIN method=post>");
65             sb.append("find user: <input type=text name=usr>");
66             sb.append("<input type=submit value=send>");
67             sb.append("<input type=hidden name=do value=searchuser></form>");
68
69             sb.append("<a HREF=/ADMIN?do=userlist>show userlist</a>&nbsp;|&nbsp;");
70             sb.append("<a HREF=/ADMIN?do=banlist>show banlist</a>&nbsp;|&nbsp;");
71             sb.append("<a HREF=/ADMIN?do=grouplist>grouplist</a>&nbsp;|&nbsp;");
72             sb.append("<a HREF=/ADMIN?do=configoverview>configoverview</a>&nbsp;|&nbsp;");
73             sb.append("<a HREF=/ADMIN?do=shutdown>shutdown</a>");
74         }
75
76         c.wrap (sb.toString());
77     }
78
79     public void removeUser(IRequest req, StringBuffer JavaDoc sb) {
80         String JavaDoc usrName = req.getValue("name");
81         String JavaDoc usrCookie = req.getValue("cookie");
82         String JavaDoc force = req.getValue("force");
83         User ur = UserManager.mgr.getUserByCookie(usrCookie);
84         if (ur==null)
85            ur = UserManager.mgr.getUserByName (usrName);
86         if (ur!=null) {
87             ur.sendQuitMessage(false);
88             if ("true".equalsIgnoreCase(force)) {
89                 UserManager.mgr.ustr.removeUser(ur);
90                 sb.append("forcibly removed user");
91             } else {
92                 sb.append("removed user");
93             }
94         } else {
95             sb.append("user not found");
96         }
97     }
98
99     public void removeBan(IRequest req, StringBuffer JavaDoc sb) {
100         String JavaDoc val = req.getValue("name");
101         if (val != null) {
102            if (Server.srv.removeBan(val))
103                sb.append("removed ban for user " + val);
104            else
105                sb.append("No ban found for user " + val);
106         } else {
107             val = req.getValue("host");
108             if (Server.srv.removeBan(val))
109                 sb.append("removed ban for host " + val);
110             else
111                 sb.append("No ban found for host " + val);
112         }
113     }
114
115     public void sendMessage(IRequest req, StringBuffer JavaDoc sb) {
116         if (req.getValue("msg") == null) {
117             sb.append("no message!");
118         } else {
119             AdminCore.messageToAll(req.getValue("msg"));
120             sb.append("message sent!");
121         }
122     }
123     public void sendMessageToUser(IRequest req, StringBuffer JavaDoc sb) {
124         if (req.getValue("msg") == null || req.getValue("username") == null) {
125             sb.append("no message or username!");
126         } else {
127             AdminCore.messageToUser(req.getValue("msg"),req.getValue("username"));
128             sb.append("message sent!");
129         }
130     }
131     public void sendMessageToGroup(IRequest req, StringBuffer JavaDoc sb) {
132         if (req.getValue("msg") == null || req.getValue("groupname") == null) {
133             sb.append("no message or groupname!");
134         } else {
135             AdminCore.messageToGroup(req.getValue("msg"),req.getValue("groupname"));
136             sb.append("message sent!");
137         }
138     }
139
140     public void renderUserlist(IRequest req, StringBuffer JavaDoc sb) {
141         sb.append ("<b>FreeCS-Userlist</b><br><table class=mainTable>");
142         User[] users = UserManager.mgr.ustr.toArray();
143          for (int i = 0; i < users.length; i++) {
144             User u = users[i];
145             sb.append ("<tr>");
146             sb.append ("<td class=logout><a HREF=/admin?do=removeuser&name=");
147             sb.append (u.getName().toLowerCase());
148             sb.append ("&cookie=");
149             sb.append (u.getCookie());
150             sb.append (">logout</a>");
151             sb.append ("</td>");
152             sb.append ("<td class=remove>");
153             sb.append ("<a HREF=/admin?do=removeuser&name=");
154             sb.append (u.getName().toLowerCase());
155             sb.append ("&cookie=");
156             sb.append (u.getCookie());
157             sb.append ("&force=true>remove</a>");
158             sb.append ("</td>");
159             sb.append ("<td class=username>");
160             sb.append (u.getName());
161             sb.append ("</td>");
162             sb.append ("<td class=groupname>in ");
163             Group g = u.getGroup();
164             sb.append (g != null ? g.getRawName() : "<i>currently changing group</i>");
165             sb.append ("</td>");
166             sb.append ("</tr>\r\n");
167          }
168     }
169     
170     public void searchUser(IRequest req, StringBuffer JavaDoc sb) {
171         String JavaDoc usrName = req.getValue("usr");
172         sb.append ("<b>FreeCS-Usersearch</b><br><table class=mainTable>");
173         User u = UserManager.mgr.getUserByName(usrName);
174         if (u != null) {
175             sb.append ("<tr>");
176             sb.append ("<td class=logout><a HREF=/admin?do=removeuser&name=");
177             sb.append (u.getName().toLowerCase());
178             sb.append ("&cookie=");
179             sb.append (u.getCookie());
180             sb.append (">logout</a>");
181             sb.append ("</td>");
182             sb.append ("<td class=remove>");
183             sb.append ("<a HREF=/admin?do=removeuser&name=");
184             sb.append (u.getName().toLowerCase());
185             sb.append ("&cookie=");
186             sb.append (u.getCookie());
187             sb.append ("&force=true>remove</a>");
188             sb.append ("</td>");
189             sb.append ("<td class=username>");
190             sb.append (u.getName());
191             sb.append ("</td>");
192             sb.append ("<td class=groupname>in ");
193             Group g = u.getGroup();
194             sb.append (g != null ? g.getRawName() : "<i>currently changing group</i>");
195             sb.append ("</td>");
196             sb.append ("</tr>\r\n");
197         } else sb.append ("<br>User not found");
198     }
199
200     public void renderBanlist(IRequest req, StringBuffer JavaDoc sb) {
201         BanObject[] bArr = Server.srv.getBanList();
202         sb.append ("<b>FreeCS-BanList</b><br>");
203         if (bArr.length<1) {
204             sb.append ("There are no BanObjects at the moment");
205         } else {
206             StringBuffer JavaDoc ub = new StringBuffer JavaDoc();
207             StringBuffer JavaDoc hb = new StringBuffer JavaDoc();
208             ub.append ("<table border=0><tr><td><b>User (ip)</b></td><td><b>Banned by</b></td><td>Banned until</td><td>Release</td><td>Message</td></tr>");
209             hb.append ("<table border=0><tr><td><b>Host</b></td><td><td>Banned until</td><td>Release</td><td>details</td></tr>");
210             for (int i = 0; i<bArr.length; i++) {
211                 BanObject curr = bArr[i];
212                 if (curr.hostban==null) {
213                     ub.append ("<tr><td>");
214                     ub.append (curr.usr);
215                     ub.append (" (");
216                     ub.append (curr.con);
217                     ub.append (")</td><td>");
218                     ub.append (curr.bannedBy);
219                     ub.append ("</td><td>");
220                     ub.append (Server.formatDefaultTimeStamp(curr.time));
221                     ub.append ("</td><td>");
222                     ub.append ("<a HREF=/admin?do=removeban&name=");
223                     ub.append (curr.usr);
224                     ub.append (">X</a></td><td>");
225                     ub.append (curr.msg);
226                     ub.append ("</td></tr>");
227                 } else {
228                     hb.append ("<tr><td>");
229                     hb.append (curr.hostban);
230                     hb.append ("</td><td>");
231                     hb.append (Server.formatDefaultTimeStamp(curr.time));
232                     hb.append ("</td><td>");
233                     hb.append ("<a HREF=/admin?do=removeban&host=");
234                     hb.append (curr.hostban);
235                     hb.append (">X</a></td><td>");
236                     hb.append (curr.msg);
237                     hb.append ("</td></tr>");
238                 }
239             }
240             ub.append("</table>");
241             hb.append("</table>");
242             sb.append ("<table border=0><tr><td valign=top>");
243             sb.append (ub.toString());
244             sb.append ("</td><td width=2 bgcolor=#000000></td><td valign=top>");
245             sb.append (hb.toString());
246             sb.append ("</td></tr></table>");
247         }
248         sb.append ("</table>");
249     }
250
251     public void renderGrouplist(IRequest req, StringBuffer JavaDoc sb) {
252         Group[] grps = GroupManager.mgr.currentGroupList();
253         sb.append (GroupManager.mgr.openGroupsCount() + " open group(s)<br><br>");
254         for (int i = 0; i < grps.length; i++) {
255             sb.append (grps[i].toString()).append("<br>");
256         }
257     }
258     
259     public void renderConfigoverview(IRequest req, StringBuffer JavaDoc sb) {
260         sb.append ("<b>FreeCS-Config Overview</b><br>");
261         sb.append ("<table class=mainTable>");
262         sb.append ("<tr>");
263         sb.append ("<td>");
264         sb.append ("maxUsers: "+Server.srv.MAX_USERS);
265         sb.append ("</td>");
266         sb.append ("</tr>");
267         sb.append ("<tr>");
268         sb.append ("<td>");
269         sb.append ("Usertimeout: "+Server.srv.USER_TIMEOUT/60000+" min");
270         sb.append ("</td>");
271         sb.append ("</tr>");
272         sb.append ("<tr>");
273         sb.append ("<td>");
274         sb.append ("Userawaytimeout: "+Server.srv.USER_AWAY_TIMEOUT/60000+" min");
275         sb.append ("</td>");
276         sb.append ("</tr>");
277         sb.append ("<tr>");
278         sb.append ("<td>");
279         sb.append ("Viptimeout: "+Server.srv.VIP_TIMEOUT/60000+" min");
280         sb.append ("</td>");
281         sb.append ("</tr>");
282         sb.append ("<tr>");
283         sb.append ("<td>");
284         sb.append ("Max Suusers: "+Server.srv.MAX_SUUSERS_PER_STARTGROUP);
285         sb.append ("</td>");
286         sb.append ("</tr>");
287         sb.append ("<tr>");
288         sb.append ("<td>");
289         sb.append ("Max Groupnamelength: "+Server.srv.MAX_GROUPNAME_LENGTH);
290         sb.append ("</td>");
291         sb.append ("</tr>");
292         sb.append ("<tr>");
293         sb.append ("<td>");
294         sb.append ("Max Groupthemelength: "+Server.srv.MAX_GROUPTHEME_LENGTH);
295         sb.append ("</td>");
296         sb.append ("</tr>");
297         sb.append ("<tr>");
298         sb.append ("<td>");
299         sb.append ("Max Banduration: "+Server.srv.MAX_BAN_DURATION+" min");
300         sb.append ("</td>");
301         sb.append ("</tr>");
302         sb.append ("<tr>");
303         sb.append ("<td>");
304         sb.append ("Max Floodbanduration: "+Server.srv.FLOOD_BAN_DURATION+" millis");
305         sb.append ("</td>");
306         sb.append ("</tr>");
307         sb.append ("<tr>");
308         sb.append ("<td>");
309         sb.append ("Floodprotectmillis: "+Server.srv.FLOOD_PROTECT_MILLIS);
310         sb.append ("</td>");
311         sb.append ("</tr>");
312         sb.append ("<tr>");
313         sb.append ("<td>");
314         sb.append ("Floodprotecttoleranc: "+Server.srv.FLOOD_PROTECT_TOLERANC);
315         sb.append ("</td>");
316         sb.append ("</tr>");
317         sb.append ("<tr>");
318         sb.append ("<td>");
319         sb.append ("Max Toolbanduration: "+Server.srv.TOOL_BAN_DURATION+" millis");
320         sb.append ("</td>");
321         sb.append ("</tr>");
322         sb.append ("<tr>");
323         sb.append ("<td>");
324         sb.append ("Toolprotectcounter: "+Server.srv.TOOL_PROTECT_COUNTER);
325         sb.append ("</td>");
326         sb.append ("</tr>");
327         sb.append ("<tr>");
328         sb.append ("<td>");
329         sb.append ("Toolprotecttoleranc: "+Server.srv.TOOL_PROTECT_TOLERANC);
330         sb.append ("</td>");
331         sb.append ("</tr>");
332         sb.append ("<tr>");
333         sb.append ("<td>");
334         sb.append ("Toolprotectminmills: "+Server.srv.TOOL_PROTECT_MINMILLS);
335         sb.append ("</td>");
336         sb.append ("</tr>");
337         sb.append ("<tr>");
338         sb.append ("<td>");
339         sb.append ("Toolprotectmincounter: "+Server.srv.TOOL_PROTECT_MINCOUNTER);
340         sb.append ("</td>");
341         sb.append ("</tr>");
342         sb.append ("<tr>");
343         sb.append ("<td>");
344         sb.append ("Startgroups/Theme: "+Server.srv.props.getProperty("startgroups"));
345         sb.append ("</td>");
346         sb.append ("</tr>");
347         sb.append ("</table>");
348     }
349     private void renderTemplate(IRequest req, String JavaDoc name, StringBuffer JavaDoc sb) {
350         sb.append(renderTemplate(req, name));
351     }
352     
353     private String JavaDoc renderTemplate(IRequest req, String JavaDoc name) {
354         TemplateSet ts = Server.srv.templatemanager.getTemplateSet ("admin");
355         Template tpl = ts.getTemplate (name);
356         return tpl.render(req);
357     }
358
359
360 }
361
Popular Tags