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

📄 rolemanagerserviceimpl.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
字号:
/* * * @version: $Id: RoleManagerServiceImpl.java 5032 2006-08-17 18:15:06Z novotny $ */package org.gridsphere.services.core.security.role.impl;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.gridsphere.portlet.service.PortletServiceUnavailableException;import org.gridsphere.portlet.service.spi.PortletServiceConfig;import org.gridsphere.portlet.service.spi.PortletServiceFactory;import org.gridsphere.portlet.service.spi.PortletServiceProvider;import org.gridsphere.services.core.persistence.PersistenceManagerRdbms;import org.gridsphere.services.core.persistence.PersistenceManagerService;import org.gridsphere.services.core.persistence.QueryFilter;import org.gridsphere.services.core.security.role.PortletRole;import org.gridsphere.services.core.security.role.RoleManagerService;import org.gridsphere.services.core.user.User;import org.gridsphere.services.core.user.impl.UserImpl;import java.util.ArrayList;import java.util.List;public class RoleManagerServiceImpl implements PortletServiceProvider, RoleManagerService {    private Log log = LogFactory.getLog(RoleManagerServiceImpl.class);    private PersistenceManagerRdbms pm = null;    private String jdoUserRoles = UserRole.class.getName();    private String jdoUser = UserImpl.class.getName();    public RoleManagerServiceImpl() {    }    public void init(PortletServiceConfig config) throws PortletServiceUnavailableException {        PersistenceManagerService pmservice = (PersistenceManagerService) PortletServiceFactory.createPortletService(PersistenceManagerService.class, true);        pm = pmservice.createGridSphereRdbms();        // create user role if none exists        PortletRole userRole = getRole("USER");        if (userRole == null) {            userRole = new PortletRole();            userRole.setName("USER");            userRole.setIsDefault(1);            userRole.setDescription("portal user");            saveRole(userRole);        }        // create admin role if none exists        PortletRole adminRole = getRole("ADMIN");        if (adminRole == null) {            adminRole = new PortletRole();            adminRole.setName("ADMIN");            adminRole.setDescription("portal administrator");            userRole.setIsDefault(0);            saveRole(adminRole);        }    }    public void destroy() {        log.info("Calling destroy()");    }    public boolean isUserInRole(User user, PortletRole role) {        return (getUserRole(user, role) != null);    }    public int getNumUsersInRole(PortletRole role) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        String oql = "select count(*) from "                + this.jdoUserRoles;        return pm.count(oql);    }    public List<PortletRole> getRolesForUser(User user) {        if (user == null) throw new IllegalArgumentException("user can't be null");        List<PortletRole> roles = null;        String oql = "select userRole.role from "                + jdoUserRoles                + " userRole where userRole.user.oid='" + user.getID() + "'";        roles = pm.restoreList(oql);        return (roles != null) ? roles : new ArrayList<PortletRole>();    }    public List<User> getUsersInRole(PortletRole role) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        List<User> users = null;        String oql = "select userRole.user from "                + jdoUserRoles                + " userRole where userRole.role.Name='" + role.getName() + "'";        users = pm.restoreList(oql);        System.err.println(oql);        return (users != null) ? users : new ArrayList<User>();    }    public List<User> getUsersInRole(PortletRole role, QueryFilter filter) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        if (filter == null) throw new IllegalArgumentException("query filter cannot be null!");        List<User> users = null;        String oql = "select userRole.user from "                + jdoUserRoles                + " userRole where userRole.role.Name='" + role.getName() + "'";        users = (List<User>) pm.restoreList(oql, filter);        return (users != null) ? users : new ArrayList<User>();    }    public List<User> getUsersNotInRole(PortletRole role, QueryFilter filter) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        if (filter == null) throw new IllegalArgumentException("query filter cannot be null!");        List<User> users = null;        String oql = "select uzer from "                + this.jdoUser                + " uzer left join fetch userRole.user where userRole.role.Name!='" + role.getName() + "'";        users = (List<User>) pm.restoreList(oql, filter);        return (users != null) ? users : new ArrayList<User>();    }    public void addUserToRole(User user, PortletRole role) {        if (user == null) throw new IllegalArgumentException("user cannot be null!");        if (role == null) throw new IllegalArgumentException("role cannot be null!");        UserRole userRole = new UserRole();        if (role.getOid() == null) role = getRole(role.getName());        if (!isUserInRole(user, role)) {            userRole.setRole(role);            userRole.setUser(user);            pm.saveOrUpdate(userRole);        }    }    public void deleteUserInRole(User user, PortletRole role) {        UserRole userRole = getUserRole(user, role);        if (userRole != null) pm.delete(userRole);    }    private UserRole getUserRole(User user, PortletRole role) {        if (user == null) throw new IllegalArgumentException("user cannot be null!");        if (role == null) throw new IllegalArgumentException("role cannot be null!");        UserRole userRole = null;        String oql = "select userRole from "                + jdoUserRoles                + " userRole where userRole.user.oid='" + user.getID() + "'"                + " and userRole.role.Name='" + role.getName() + "'";        userRole = (UserRole) pm.restore(oql);        return userRole;    }    public List<PortletRole> getRoles() {        List<PortletRole> roles = null;        roles = pm.restoreList("select prole from " + PortletRole.class.getName() + " prole");        return (roles != null) ? roles : new ArrayList<PortletRole>();    }    public void deleteRole(PortletRole role) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        pm.delete(role);    }    public PortletRole getRole(String roleName) {        if (roleName == null) throw new IllegalArgumentException("role name cannot be null!");        return (PortletRole) pm.restore("select prole from " + PortletRole.class.getName() + " prole where prole.Name='" + roleName + "'");    }    public void saveRole(PortletRole role) {        if (role == null) throw new IllegalArgumentException("role cannot be null!");        pm.saveOrUpdate(role);    }    public List<PortletRole> getDefaultRoles() {        List<PortletRole> roles = null;        roles = pm.restoreList("select prole from " + PortletRole.class.getName() + " prole where prole.IsDefault=1");        return (roles != null) ? roles : new ArrayList<PortletRole>();    }    public void addDefaultRole(PortletRole role) {        PortletRole myrole = getRole(role.getName());        if (myrole != null) {            myrole.setIsDefault(1);            saveRole(myrole);        }    }    public void removeDefaultRole(PortletRole role) {        PortletRole myrole = getRole(role.getName());        if (myrole != null) {            myrole.setIsDefault(0);            saveRole(myrole);        }    }}

⌨️ 快捷键说明

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