forumPerms.jsp
上传用户:guhaomin
上传日期:2007-06-10
资源大小:23203k
文件大小:19k
源码类别:

电子政务应用

开发平台:

Java

  1. <%
  2. /**
  3.  * $RCSfile: forumPerms.jsp,v $
  4.  * $Revision: 1.3.2.1 $
  5.  * $Date: 2001/02/09 20:38:41 $
  6.  */
  7. %>
  8. <%@ page import="java.util.*,
  9.                  java.net.URLEncoder,
  10.                  com.coolservlets.forum.*,
  11.                  com.coolservlets.forum.util.*,
  12.  com.coolservlets.forum.util.admin.*"%>
  13. <jsp:useBean id="adminBean" scope="session"
  14.  class="com.coolservlets.forum.util.admin.AdminBean"/>
  15.  
  16. <%! ////////////////////////
  17. // global page variables
  18. private final int READ = ForumPermissions.READ;
  19. private final int CREATE_THREAD = ForumPermissions.CREATE_THREAD;
  20. private final int CREATE_MESSAGE = ForumPermissions.CREATE_MESSAGE;
  21. private final int[] perms = { READ, CREATE_THREAD, CREATE_MESSAGE };
  22. private final String[] permDescriptions = {
  23. "浏览论坛内容","发表论坛论题","回复论坛帖子"
  24. };
  25. %>
  26. <%! ///////////////////
  27. // global methods
  28. private int[] getIntListboxParams( String[] paramVal ) {
  29. if( paramVal == null ) { 
  30. return new int[0]; 
  31. }
  32. int[] params = new int[paramVal.length];
  33. for (int i=0;i<paramVal.length;i++)
  34. {
  35. try {
  36. params[i] = Integer.parseInt(paramVal[i]);
  37. } catch( NumberFormatException nfe ) {}
  38. }
  39. return params;
  40. }
  41. %>
  42. <% ////////////////////////////////
  43. // Jive authorization check
  44. // check the bean for the existence of an authorization token.
  45. // Its existence proves the user is valid. If it's not found, redirect
  46. // to the login page
  47. Authorization authToken = adminBean.getAuthToken();
  48. if( authToken == null ) {
  49. response.sendRedirect( "/mainctrl/bbs/admin" );
  50. return;
  51. }
  52. %>
  53.  
  54. <% ////////////////////
  55. // Security check
  56. // make sure the user is authorized to administer users:
  57. ForumFactory forumFactory = ForumFactory.getInstance(authToken);
  58. ForumPermissions permissions = forumFactory.getPermissions(authToken);
  59. boolean isSystemAdmin = permissions.get(ForumPermissions.SYSTEM_ADMIN);
  60. boolean isForumAdmin   = permissions.get(ForumPermissions.FORUM_ADMIN);
  61. // redirect to error page if we're not a group admin or a system admin
  62. if( !isForumAdmin && !isSystemAdmin ) {
  63. request.setAttribute("message","您没有权限管理论坛!");
  64. response.sendRedirect("error.jsp");
  65. return;
  66. }
  67. %>
  68. <% ////////////////////
  69. // get parameters
  70. int forumID = ParamUtils.getIntParameter(request,"forum",-1);
  71. // action parameters
  72. boolean doAddUserPerm = ParamUtils.getBooleanParameter(request,"doAddUserPerm");
  73. boolean doAddGroupPerm = ParamUtils.getBooleanParameter(request,"doAddGroupPerm");
  74. boolean doRemoveUserPerm = ParamUtils.getBooleanParameter(request,"doRemoveUserPerm");
  75. boolean doRemoveGroupPerm = ParamUtils.getBooleanParameter(request,"doRemoveGroupPerm");
  76. int permType = ParamUtils.getIntParameter(request,"permType",-1);
  77. int[] usersWithPerm = getIntListboxParams(request.getParameterValues("usersWithPerm"));
  78. int[] groupsWithPerm = getIntListboxParams(request.getParameterValues("groupsWithPerm"));
  79. int[] userList = getIntListboxParams(request.getParameterValues("userList"));
  80. String userAddUsername = request.getParameter("userListField");
  81. int[] groupList = getIntListboxParams(request.getParameterValues("groupList"));
  82. int[] userPermTypesList = getIntListboxParams(request.getParameterValues("userPermTypes"));
  83. int[] groupPermTypesList = getIntListboxParams(request.getParameterValues("groupPermTypes"));
  84. %>
  85. <% /////////////////////
  86. // other page variables
  87. boolean doAction = ( 
  88. doAddUserPerm || doAddGroupPerm || doRemoveUserPerm || doRemoveGroupPerm
  89. );
  90. %>
  91. <% ///////////////////////
  92. // error variables
  93. boolean errors = false;
  94. %>
  95. <% //////////////////////////////////
  96. // global variables
  97. ProfileManager manager = forumFactory.getProfileManager();
  98. %>
  99. <% /////////////////////
  100. // try to load the forum from the passed in forumID
  101. Forum forum = null;
  102. try {
  103. forum = forumFactory.getForum(forumID);
  104. }
  105. catch( ForumNotFoundException fnfe ) {
  106. response.sendRedirect("error.jsp?msg="
  107. + URLEncoder.encode("论坛 " + forumID + " 没有发现!") );
  108. return;
  109. }
  110. catch( UnauthorizedException ue ) {
  111. response.sendRedirect("error.jsp?msg="
  112. + URLEncoder.encode("您没有权限管理此论坛!"));
  113. return;
  114. }
  115. %>
  116. <% /////////////////////
  117. // this forum's properties
  118. String forumName = forum.getName();
  119. String forumDescription = forum.getDescription();
  120. Iterator allUsers = manager.users();
  121. Iterator allGroups = manager.groups();
  122. int[] usersWithReadPerm = new int[0];
  123. int[] usersWithThreadPerm = new int[0];
  124. int[] usersWithMessagePerm = new int[0];
  125. int[] groupsWithReadPerm = new int[0];
  126. int[] groupsWithThreadPerm = new int[0];
  127. int[] groupsWithMessagePerm = new int[0];
  128. try {
  129. usersWithReadPerm = forum.usersWithPermission(READ);
  130. usersWithThreadPerm = forum.usersWithPermission(CREATE_THREAD);
  131. usersWithMessagePerm = forum.usersWithPermission(CREATE_MESSAGE);
  132. groupsWithReadPerm = forum.groupsWithPermission(READ);
  133. groupsWithThreadPerm = forum.groupsWithPermission(CREATE_THREAD);
  134. groupsWithMessagePerm = forum.groupsWithPermission(CREATE_MESSAGE);
  135. }
  136. catch( UnauthorizedException ue ) {}
  137. %>
  138. <% /////////////////////////
  139. // do an action!
  140. if( doAction ) {
  141. // add a new user permission
  142. if( doAddUserPerm ) {
  143. try {
  144. for( int i=0; i<userList.length; i++ ) {
  145. User user = manager.getUser(userList[i]);
  146. for( int j=0; j<userPermTypesList.length; j++ ) {
  147. forum.addUserPermission(user,userPermTypesList[j]);
  148. }
  149. }
  150. } catch( UserNotFoundException unfe ) {
  151. } catch( UnauthorizedException ue ) {
  152. }
  153. try {
  154. if( !"-Enter Username-".equals(userAddUsername) 
  155. && userAddUsername != null )
  156. {
  157. User user = manager.getUser(userAddUsername);
  158. for( int j=0; j<userPermTypesList.length; j++ ) {
  159. forum.addUserPermission(user,userPermTypesList[j]);
  160. }
  161. }
  162. } catch( UserNotFoundException unfe ) {
  163. } catch( UnauthorizedException ue ) {
  164. }
  165. }
  166. // remove a user permission
  167. if( doRemoveUserPerm ) {
  168. try {
  169. for( int i=0; i<usersWithPerm.length; i++ ) {
  170. User user = manager.getUser(usersWithPerm[i]);
  171. forum.removeUserPermission(user,permType);
  172. }
  173. } catch( UserNotFoundException unfe ) {
  174. } catch( UnauthorizedException ue ) {
  175. }
  176. }
  177. // add a new group permission
  178. if( doAddGroupPerm ) {
  179. try {
  180. for( int i=0; i<groupList.length; i++ ) {
  181. Group group = manager.getGroup(groupList[i]);
  182. for( int j=0; j<groupPermTypesList.length; j++ ) {
  183. forum.addGroupPermission(group,groupPermTypesList[j]);
  184. }
  185. }
  186. } catch( GroupNotFoundException gnfe ) {
  187. } catch( UnauthorizedException ue ) {
  188. }
  189. }
  190. // remove a user permission
  191. if( doRemoveGroupPerm ) {
  192. try {
  193. for( int i=0; i<groupsWithPerm.length; i++ ) {
  194. Group group = manager.getGroup(groupsWithPerm[i]);
  195. forum.removeGroupPermission(group,permType);
  196. }
  197. } catch( GroupNotFoundException gnfe ) {
  198. } catch( UnauthorizedException ue ) {
  199. }
  200. }
  201. }
  202. %>
  203. <% ////////////////////
  204. // if we did something, redirect to this page again (since we're doing POSTS
  205. // on the form)
  206. // uncommented so i can debug parameters!!
  207. if( doAction ) {
  208. response.sendRedirect("forumPerms.jsp?forum="+forumID);
  209. return;
  210. }
  211. %>
  212. <html>
  213. <head>
  214. <title></title>
  215. <link rel="stylesheet" href="style/global.css">
  216. <script language="JavaScript" type="text/javascript">
  217. <!--
  218. function selAllListBox( el, chkbx ) {
  219. if( chkbx.checked ) {
  220. for( var i=0; i<el.options.length; i++ ) {
  221. el.options[i].selected = true;
  222. }
  223. }
  224. }
  225. //-->
  226. </script>
  227. </head>
  228. <body background="images/shadowBack.gif" bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
  229. <% ///////////////////////
  230. // pageTitleInfo variable (used by include/pageTitle.jsp)
  231. String[] pageTitleInfo = { "论坛: 论坛许可" };
  232. %>
  233. <% ///////////////////
  234. // pageTitle include
  235. %><%@ include file="include/pageTitle.jsp" %>
  236. <p>
  237. <b>此论坛的许可状况:</b>
  238. <%= forumName %>
  239. <p>
  240. <%-- Permissions summary table --%>
  241. <table bgcolor="#666666" cellpadding="0" cellspacing="0" width="80%" align="center" border="0">
  242. <td>
  243. <table bgcolor="#666666" cellpadding="3" cellspacing="1" width="100%" border="0">
  244. <tr bgcolor="#eeeeee">
  245. <td>
  246. 许可列表
  247. </td>
  248. </tr>
  249. <tr bgcolor="#ffffff">
  250. <td>
  251. <table cellpadding="3" cellspacing="0" width="100%" border="0">
  252. <td>
  253. <br>
  254. <%-- user permission summary --%>
  255. 用户 在此论坛中的许可详细情况:
  256. <p>
  257. <table cellpadding="3" cellspacing="0" border="0" align="center">
  258. <tr>
  259. <form action="forumPerms.jsp">
  260. <input type="hidden" name="forum" value="<%= forumID %>">
  261. <input type="hidden" name="doRemoveUserPerm" value="true">
  262. <input type="hidden" name="permType" value="<%= READ %>">
  263. <td align="center">
  264. <b><%= usersWithReadPerm.length %></b>
  265. 拥有<font color="#008000">论坛浏览</font>许可:
  266. <br>
  267. <select size="5" name="usersWithPerm" multiple>
  268. <% for( int i=0; i<usersWithReadPerm.length; i++ ) { %>
  269. <% try { %>
  270. <% User user = manager.getUser(usersWithReadPerm[i]); %>
  271. <% int userID = user.getID(); %>
  272. <% if( userID == -1 ) { %>
  273. <option value="<%= userID %>">◎匿名过客
  274. <% } else if( userID == 0 ) { %>
  275. <option value="<%= userID %>">◎所有注册用户
  276. <% } else { %>
  277. <option value="<%= userID %>"><%= user.getUsername() %>
  278. <% } %>
  279. <% } catch( UserNotFoundException unfe ) {} %>
  280. <% } %>
  281. </select><br>
  282. (<input type="checkbox" id="cb03"
  283.   onclick="selAllListBox(this.form.usersWithPerm,this);">
  284. <label for="cb03">全选</label>) <br>
  285. <input type="submit" value="删除">
  286. </td>
  287. </form>
  288. <form action="forumPerms.jsp">
  289. <input type="hidden" name="forum" value="<%= forumID %>">
  290. <input type="hidden" name="doRemoveUserPerm" value="true">
  291. <input type="hidden" name="permType" value="<%= CREATE_THREAD %>">
  292. <td align="center">
  293. <b><%= usersWithThreadPerm.length %></b>
  294. 拥有<font color="#008000">创建论题</font>许可:
  295. <br>
  296. <select size="5" name="usersWithPerm" multiple>
  297. <% for( int i=0; i<usersWithThreadPerm.length; i++ ) { %>
  298. <% try { %>
  299. <% User user = manager.getUser(usersWithThreadPerm[i]); %>
  300. <% int userID = user.getID(); %>
  301. <% if( userID == -1 ) { %>
  302. <option value="<%= userID %>">◎匿名过客
  303. <% } else if( userID == 0 ) { %>
  304. <option value="<%= userID %>">◎所有注册用户
  305. <% } else { %>
  306. <option value="<%= userID %>"><%= user.getUsername() %>
  307. <% } %>
  308. <% } catch( UserNotFoundException unfe ) {} %>
  309. <% } %>
  310. </select><br>
  311. (<input type="checkbox" id="cb04"
  312.   onclick="selAllListBox(this.form.usersWithPerm,this);">
  313. <label for="cb04">全选</label>) <br>
  314. <input type="submit" value="删除">
  315. </td>
  316. </form>
  317. <form action="forumPerms.jsp">
  318. <input type="hidden" name="forum" value="<%= forumID %>">
  319. <input type="hidden" name="doRemoveUserPerm" value="true">
  320. <input type="hidden" name="permType" value="<%= CREATE_MESSAGE %>">
  321. <td align="center">
  322. <b><%= usersWithMessagePerm.length %></b>
  323. 拥有<font color="#008000">回复帖子</font>许可:
  324. <br>
  325. <select size="5" name="usersWithPerm" multiple>
  326. <% for( int i=0; i<usersWithMessagePerm.length; i++ ) { %>
  327. <% try { %>
  328. <% User user = manager.getUser(usersWithMessagePerm[i]); %>
  329. <% int userID = user.getID(); %>
  330. <% if( userID == -1 ) { %>
  331. <option value="<%= userID %>">◎匿名过客
  332. <% } else if( userID == 0 ) { %>
  333. <option value="<%= userID %>">◎所有注册用户
  334. <% } else { %>
  335. <option value="<%= userID %>"><%= user.getUsername() %>
  336. <% } %>
  337. <% } catch( UserNotFoundException unfe ) {} %>
  338. <% } %>
  339. </select><br>
  340. (<input type="checkbox" id="cb05"
  341.   onclick="selAllListBox(this.form.usersWithPerm,this);">
  342. <label for="cb05">全选</label>) <br>
  343. <input type="submit" value="删除">
  344. </td>
  345. </form>
  346. </tr>
  347. </table>
  348. <%-- /user permission summary --%>
  349. <p>
  350. <hr size="0" width="75%">
  351. <p>
  352. <%-- group permission summary --%>
  353. 用户组 在此论坛的许可的详细情况:
  354. <p>
  355. <table cellpadding="3" cellspacing="0" border="0" align="center">
  356. <tr>
  357. <form action="forumPerms.jsp">
  358. <input type="hidden" name="forum" value="<%= forumID %>">
  359. <input type="hidden" name="doRemoveGroupPerm" value="true">
  360. <input type="hidden" name="permType" value="<%= READ %>">
  361. <td align="center">
  362. <b><%= groupsWithReadPerm.length %></b>
  363. 拥有<font color="#008000">论坛浏览</font>许可:
  364. <br>
  365. <select size="5" name="groupsWithPerm">
  366. <% for( int i=0; i<groupsWithReadPerm.length; i++ ) { %>
  367. <% try { %>
  368. <% Group group = manager.getGroup(groupsWithReadPerm[i]); %>
  369. <option value="<%= group.getID() %>"><%= group.getName() %>
  370. <% } catch( GroupNotFoundException gnfe ) {%> <%= groupsWithReadPerm[i] %> <%} %>
  371. <% } %>
  372. </select><br>
  373. (<input type="checkbox" id="cb06"
  374.   onclick="selAllListBox(this.form.groupsWithPerm,this);">
  375. <label for="cb06">全选</label>) <br>
  376. <input type="submit" value="删除">
  377. </td>
  378. </form>
  379. <form action="forumPerms.jsp">
  380. <input type="hidden" name="forum" value="<%= forumID %>">
  381. <input type="hidden" name="doRemoveGroupPerm" value="true">
  382. <input type="hidden" name="permType" value="<%= CREATE_THREAD %>">
  383. <td align="center">
  384. <b><%= groupsWithThreadPerm.length %></b>
  385. 拥有<font color="#008000">创建论题</font>许可:
  386. <br>
  387. <select size="5" name="groupsWithPerm">
  388. <% for( int i=0; i<groupsWithThreadPerm.length; i++ ) { %>
  389. <% try { %>
  390. <% Group group = manager.getGroup(groupsWithThreadPerm[i]); %>
  391. <option value="<%= group.getID() %>"><%= group.getName() %>
  392. <% } catch( GroupNotFoundException gnfe ) {} %>
  393. <% } %>
  394. </select><br>
  395. (<input type="checkbox" id="cb07"
  396.   onclick="selAllListBox(this.form.groupsWithPerm,this);">
  397. <label for="cb07">全选</label>) <br>
  398. <input type="submit" value="删除">
  399. </td>
  400. </form>
  401. <form action="forumPerms.jsp">
  402. <input type="hidden" name="forum" value="<%= forumID %>">
  403. <input type="hidden" name="doRemoveGroupPerm" value="true">
  404. <input type="hidden" name="permType" value="<%= CREATE_MESSAGE %>">
  405. <td align="center">
  406. <b><%= groupsWithMessagePerm.length %></b>
  407. 拥有<font color="#008000">回复帖子</font>许可:
  408. <br>
  409. <select size="5" name="groupsWithPerm">
  410. <% for( int i=0; i<groupsWithMessagePerm.length; i++ ) { %>
  411. <% try { %>
  412. <% Group group = manager.getGroup(groupsWithMessagePerm[i]); %>
  413. <option value="<%= group.getID() %>"><%= group.getName() %>
  414. <% } catch( GroupNotFoundException gnfe ) {} %>
  415. <% } %>
  416. </select><br>
  417. (<input type="checkbox" id="cb08"
  418.   onclick="selAllListBox(this.form.groupsWithPerm,this);">
  419. <label for="cb08">全选</label>) <br>
  420. <input type="submit" value="删除">
  421. </td>
  422. </form>
  423. </tr>
  424. </table>
  425. <%-- /group permission summary --%>
  426. </td>
  427. </table>
  428. </td>
  429. </tr>
  430. </table>
  431. </td>
  432. </table>
  433. <%-- /Permissions summary table --%>
  434. <p>
  435. <%-- Add new user permission --%>
  436. <form action="forumPerms.jsp" method="get"> 
  437. <input type="hidden" name="doAddUserPerm" value="true">
  438. <input type="hidden" name="forum" value="<%= forumID %>">
  439. <table bgcolor="#666666" cellpadding="0" cellspacing="0" width="80%" align="center" border="0">
  440. <td>
  441. <table bgcolor="#666666" cellpadding="3" cellspacing="1" width="100%" border="0">
  442. <tr bgcolor="#eeeeee">
  443. <td width="99%">
  444. 增加新<b>用户</b>许可
  445. </td>
  446. <td width="1%" nowrap>
  447. (<a href="createUser.jsp">增加一个新用户</a>)
  448. </td>
  449. </tr>
  450. <tr bgcolor="#ffffff">
  451. <td colspan="2">
  452. <table cellpadding="3" cellspacing="0" width="100%" border="0">
  453. <td>
  454. <p>
  455. <table cellpadding="3" cellspacing="0" border="0" align="center">
  456. <tr>
  457. <td nowrap>设置</td>
  458. <td width="1%">
  459. <select name="userList" size="2" multiple>
  460. <option value="-1">◎匿名过客
  461. <option value="0">◎所有注册用户
  462. </select>
  463. (<input type="checkbox" id="cb01"
  464.   onclick="selAllListBox(this.form.userList,this);">
  465. <label for="cb01">全选</label>)
  466. <br>
  467. <input type="text" size="20" name="userListField"
  468.  value="输入用户名"
  469.  onclick="this.select();">
  470. <br>
  471. </td>
  472. <td>在此论坛中有</td>
  473. <td>
  474. <select name="userPermTypes" size="<%= perms.length %>" multiple>
  475. <% for( int i=0; i<perms.length; i++ ) { %>
  476. <option value="<%= perms[i] %>"><%= permDescriptions[i] %>
  477. <% } %>
  478. </select>
  479. <br>
  480. (<input type="checkbox" id="cb02"
  481.   onclick="selAllListBox(this.form.userPermTypes,this);">
  482. <label for="cb02">全选</label>)
  483. </td>
  484. <td>的许可</td>
  485. </tr>
  486. <tr>
  487. <td colspan="5" align="center">
  488. <input type="submit" name="" value="增加用户许可">
  489. </td>
  490. </tr>
  491. </table>
  492. </td>
  493. </table>
  494. </td>
  495. </tr>
  496. </table>
  497. </td>
  498. </table>
  499. </form>
  500. <%-- /Add new user permission --%>
  501. <p>
  502. <%-- Add new group permission --%>
  503. <form action="forumPerms.jsp" method="get"> 
  504. <input type="hidden" name="doAddGroupPerm" value="true">
  505. <input type="hidden" name="forum" value="<%= forumID %>">
  506. <table bgcolor="#666666" cellpadding="0" cellspacing="0" width="80%" align="center" border="0">
  507. <td>
  508. <table bgcolor="#666666" cellpadding="3" cellspacing="1" width="100%" border="0">
  509. <tr bgcolor="#eeeeee">
  510. <td width="99%">
  511. 增加新<b>用户组</b>许可
  512. </td>
  513. <td width="1%" nowrap>
  514. (<a href="createGroup.jsp">增加一个新用户组</a>)
  515. </td>
  516. </tr>
  517. <tr bgcolor="#ffffff">
  518. <td colspan="2">
  519. <table cellpadding="3" cellspacing="0" width="100%" border="0">
  520. <td>
  521. <p>
  522. <table cellpadding="3" cellspacing="0" border="0" align="center">
  523. <tr>
  524. <td nowrap>设置</td>
  525. <td>
  526. <select name="groupList" size="4" multiple>
  527. <% while( allGroups.hasNext() ) { %>
  528. <% Group group = (Group)allGroups.next(); %>
  529. <option value="<%= group.getID() %>"><%= group.getName() %>
  530. <% } %>
  531. </select>
  532. <br>
  533. (<input type="checkbox" id="cb11"
  534.   onclick="selAllListBox(this.form.groupList,this);">
  535. <label for="cb11">全选</label>)
  536. </td>
  537. <td>在此论坛中拥有</td>
  538. <td>
  539. <select name="groupPermTypes" size="<%= perms.length %>" multiple>
  540. <% for( int i=0; i<perms.length; i++ ) { %>
  541. <option value="<%= perms[i] %>"><%= permDescriptions[i] %>
  542. <% } %>
  543. </select>
  544. <br>
  545. (<input type="checkbox" id="cb12"
  546.   onclick="selAllListBox(this.form.groupPermTypes,this);">
  547. <label for="cb12">全选</label>)
  548. </td>
  549. <td>的许可</td>
  550. </tr>
  551. <tr>
  552. <td colspan="5" align="center">
  553. <input type="submit" name="" value="增加用户组许可">
  554. </td>
  555. </tr>
  556. </table>
  557. </td>
  558. </table>
  559. </td>
  560. </tr>
  561. </table>
  562. </td>
  563. </table>
  564. </form>
  565. <%-- /Add new user permission --%>
  566. </body>
  567. </html>