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 + -
显示快捷键?