permmethods.jsp
来自「Jive是基于JSP/JAVA技术构架的一个大型BBS论坛系统,这是Jive论坛」· JSP 代码 · 共 180 行
JSP
180 行
<%/** * $RCSfile: permMethods.jsp,v $ * $Revision: 1.7 $ * $Date: 2002/06/18 00:34:57 $ */%><%@ page import="java.util.*, com.jivesoftware.forum.*"%><%! // Global vars, methods, etc // User Perms static final int READ_FORUM = ForumPermissions.READ_FORUM; static final int CREATE_THREAD = ForumPermissions.CREATE_THREAD; static final int CREATE_MESSAGE = ForumPermissions.CREATE_MESSAGE; static final int MODERATE_THREADS = ForumPermissions.MODERATE_THREADS; static final int MODERATE_MESSAGES = ForumPermissions.MODERATE_MESSAGES; static final int MODERATOR = 999; static final int CREATE_ATTACHMENT = ForumPermissions.CREATE_ATTACHMENT; // Admin Perms static final int SYSTEM_ADMIN = ForumPermissions.SYSTEM_ADMIN; static final int CAT_ADMIN = ForumPermissions.CATEGORY_ADMIN; static final int FORUM_ADMIN = ForumPermissions.FORUM_ADMIN; static final int GROUP_ADMIN = ForumPermissions.GROUP_ADMIN; static final int USER_ADMIN = ForumPermissions.USER_ADMIN; /** * Recursively builds a list of categories where the user has the * specified permission. */ private void getCatsWithPerm(int type, ForumCategory category, java.util.List catsWithPerm) { Iterator iter = category.categories(); if (!iter.hasNext()) { return; } else { java.util.List categories = new java.util.LinkedList(); while (iter.hasNext()) { ForumCategory subCategory = (ForumCategory)iter.next(); if (subCategory.hasPermission(type)) { catsWithPerm.add(subCategory); } getCatsWithPerm(type, subCategory, catsWithPerm); } } } /** * Returns a list of all forums where the user is a moderator. Moderation * may or may not be turned on in these forums. * If the user doesn't have those permissions on at least 1 forum, a * list of size zero is returned. */ private java.util.List moderatedForums(ForumFactory forumFactory) { return moderatedForums(forumFactory, false); } /** * This method will return a list of forums where the user is a moderator * and where moderation is turned on if moderationEnabled is true. * If the user doesn't have those permissions on at least 1 forum, a * list of size zero is returned. */ private java.util.List moderatedForums(ForumFactory forumFactory, boolean moderationEnabled) { // Get the root category ForumCategory rootCategory = forumFactory.getRootForumCategory(); // The list of forums to return: java.util.List forums = new java.util.LinkedList(); // Loop through all forums for (Iterator iter=rootCategory.recursiveForums(); iter.hasNext();) { Forum forum = (Forum)iter.next(); if (forumFactory.hasPermission(ForumPermissions.SYSTEM_ADMIN) || forum.hasPermission(ForumPermissions.FORUM_ADMIN) || forum.hasPermission(ForumPermissions.MODERATE_THREADS) || forum.hasPermission(ForumPermissions.MODERATE_MESSAGES)) { if (!moderationEnabled) { forums.add(forum); } else { // Check to see if modeation is enabled. If so, add this // forum to the list. boolean isThreadModOn = ( forum.getModerationDefaultThreadValue() < forum.getModerationMinThreadValue() ); boolean isMessageModOn = ( forum.getModerationDefaultMessageValue() < forum.getModerationMinMessageValue() ); if (isThreadModOn || isMessageModOn) { forums.add(forum); } } } } return forums; } /** * Returns an Iterator of users with permission types of both * MODERATE_THREADS and MODERATE_MESSAGES */ private Iterator getUserModerators(PermissionsManager permManager) { // Temporarily hold all moderators in a hashmap so when we combine the // thread & message moderators, duplicates will be ignored. Map moderators = new HashMap(); // add thread moderators (user) for (Iterator iter=permManager.usersWithPermission(MODERATE_THREADS);iter.hasNext();) { User user = (User)iter.next(); moderators.put(user.getUsername(),user); } // add message moderators (user) for (Iterator iter=permManager.usersWithPermission(MODERATE_MESSAGES);iter.hasNext();) { User user = (User)iter.next(); moderators.put(user.getUsername(),user); } // Sort the user moderators list java.util.List moderatorList = new ArrayList(moderators.values()); Object[] moderatorArray = moderatorList.toArray(); Arrays.sort(moderatorArray, new Comparator() { public int compare(Object o1, Object o2) { User u1 = (User)o1; User u2 = (User)o2; return (u1.getUsername().compareTo(u2.getUsername())); } }); return (Arrays.asList(moderatorArray)).iterator(); } /** * Returns an iterator of users with permission types of both * MODERATE_THREADS and MODERATE_MESSAGES */ private Iterator getGroupModerators(PermissionsManager permManager) { // Temporarily hold all moderators in a hashmap so when we combine the // thread & message moderators, duplicates will be ignored. Map moderators = new HashMap(); // add thread moderators (groups) for (Iterator iter=permManager.groupsWithPermission(MODERATE_THREADS);iter.hasNext();) { Group group = (Group)iter.next(); moderators.put(group.getName(),group); } // add message moderators (groups) for (Iterator iter=permManager.groupsWithPermission(MODERATE_MESSAGES);iter.hasNext();) { Group group = (Group)iter.next(); moderators.put(group.getName(),group); } // Sort the user moderators list java.util.List moderatorList = new ArrayList(moderators.values()); Object[] moderatorArray = moderatorList.toArray(); Arrays.sort(moderatorArray, new Comparator() { public int compare(Object o1, Object o2) { Group g1 = (Group)o1; Group g2 = (Group)o2; return (g1.getName().compareTo(g2.getName())); } }); return (Arrays.asList(moderatorArray)).iterator(); } static boolean isBasic = true; static { try { LicenseManager.validateLicense("Jive Forums Professional", "2.0"); isBasic = false; } catch (Exception e) {} }%>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?