⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 permissionsmanagerproxy.java

📁 java开发的一套非常好用的oa系统
💻 JAVA
字号:
package com.jivesoftware.forum;

import java.util.Iterator;

public class PermissionsManagerProxy implements PermissionsManager {

    private PermissionsManager permManager;
    private Authorization authorization;
    private ForumPermissions permissions;

    public PermissionsManagerProxy(PermissionsManager permManager,
            Authorization authorization, ForumPermissions permissions)
    {
        this.permManager = permManager;
        this.authorization = authorization;
        this.permissions = permissions;
    }

     public void addUserPermission(User user, int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.addUserPermission(user, permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.addUserPermission(user, permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void addAnonymousUserPermission(int permissionType)
            throws UnauthorizedException
    {
         //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.addAnonymousUserPermission(permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.addAnonymousUserPermission(permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void addRegisteredUserPermission(int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.addRegisteredUserPermission(permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.addRegisteredUserPermission(permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeUserPermission(User user, int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.removeUserPermission(user, permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.removeUserPermission(user, permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeAnonymousUserPermission(int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.removeAnonymousUserPermission(permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.removeAnonymousUserPermission(permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeRegisteredUserPermission(int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.removeRegisteredUserPermission(permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.removeRegisteredUserPermission(permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeAllUserPermissions() throws UnauthorizedException
    {
        if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
            permManager.removeAllUserPermissions();
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public boolean userHasPermission(User user, int permissionType)
    {
        return permManager.userHasPermission(user, permissionType);
    }

    public boolean anonymousUserHasPermission(int permissionType)
    {
        return permManager.anonymousUserHasPermission(permissionType);
    }

    public boolean registeredUserHasPermission(int permissionType)
    {
        return permManager.registeredUserHasPermission(permissionType);
    }

    public Iterator usersWithPermission(int permissionType)
    {
        return permManager.usersWithPermission(permissionType);
    }

    public int usersWithPermissionCount(int permissionType)
    {
        return permManager.usersWithPermissionCount(permissionType);
    }

    public void addGroupPermission(Group group, int permissionType)
            throws UnauthorizedException
    {
       //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.addGroupPermission(group, permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.addGroupPermission(group, permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeGroupPermission(Group group, int permissionType)
            throws UnauthorizedException
    {
        //Only system admins can set forum admin perms.
        if (permissionType == ForumPermissions.FORUM_ADMIN) {
            if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
                permManager.removeGroupPermission(group, permissionType);
            }
            else {
                throw new UnauthorizedException();
            }
        }
        //Otherwise, system or forum admins can set this permission.
        if (permissions.isSystemOrForumAdmin()) {
            permManager.removeGroupPermission(group, permissionType);
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public void removeAllGroupPermissions() throws UnauthorizedException
    {
        if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) {
            permManager.removeAllGroupPermissions();
        }
        else {
            throw new UnauthorizedException();
        }
    }

    public Iterator groupsWithPermission(int permissionType)
    {
        return permManager.groupsWithPermission(permissionType);
    }

    public int groupsWithPermissionCount(int permissionType)
    {
        return permManager.groupsWithPermissionCount(permissionType);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -