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

📄 securitywrapper.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * 
 * Copyright (c) 2004 SourceTap - www.sourcetap.com
 *
 *  The contents of this file are subject to the SourceTap Public License 
 * ("License"); You may not use this file except in compliance with the 
 * License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
 * Software distributed under the License is distributed on an  "AS IS"  basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 */

package com.sourcetap.sfa.security;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.core.entity.EntityAttribute;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.condition.EntityComparisonOperator;
import org.ofbiz.entity.condition.EntityCondition;
import org.ofbiz.entity.condition.EntityConditionList;
import org.ofbiz.entity.condition.EntityExpr;
import org.ofbiz.entity.condition.EntityOperator;
import org.ofbiz.entity.model.ModelEntity;
import org.ofbiz.entity.model.ModelField;
import org.ofbiz.entity.util.EntityListIterator;

import com.sourcetap.sfa.event.DataMatrix;
import com.sourcetap.sfa.replication.GenericReplicator;
import com.sourcetap.sfa.util.Preference;
import com.sourcetap.sfa.util.QueryInfo;
import com.sourcetap.sfa.util.UserInfo;


/**
 * DOCUMENT ME!
 *
 */
public class SecurityWrapper {
    private static final String ROLE = "role";
    private static final String TEAM = "team";
	public static final String module = SecurityWrapper.class.getName();


    /**
     * DOCUMENT ME!
     *
     * @param entity 
     * @param orderBy 
     * @param userInfo 
     * @param securityInfo 
     * @param delegator 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public static List findAll(String entity, List orderBy, UserInfo userInfo,
        SecurityLinkInfo securityInfo, GenericDelegator delegator)
        throws GenericEntityException {
        return findByAnd(entity, new ArrayList(), orderBy, userInfo,
            securityInfo, delegator);
    }


	/**
	 * DOCUMENT ME!
	 *
	 * @param entity 
	 * @param entityExpressions 
	 * @param orderBy 
	 * @param userInfo 
	 * @param securityInfo 
	 * @param delegator 
	 *
	 * @return 
	 *
	 * @throws GenericEntityException 
	 */
	public static List findByAnd(String entity, List entityExpressions,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {
		return findByAnd( entity, entityExpressions, orderBy, userInfo, securityInfo, delegator, "TEAM"); 
	}

	/**
	 * DOCUMENT ME!
	 *
	 * @param entity 
	 * @param entityExpressions 
	 * @param orderBy 
	 * @param userInfo 
	 * @param securityInfo 
	 * @param delegator 
	 *
	 * @return 
	 *
	 * @throws GenericEntityException 
	 */
	public static List findByAndRoleOnly(String entity, List entityExpressions,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {
		return findByAnd( entity, entityExpressions, orderBy, userInfo, securityInfo, delegator, "ROLE"); 
	}

    /**
     * DOCUMENT ME!
     *
     * @param entity 
     * @param entityExpressions 
     * @param orderBy 
     * @param userInfo 
     * @param securityInfo 
     * @param delegator 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public static List findByAnd(String entity, List entityExpressions,
        List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
        GenericDelegator delegator, String securityType) throws GenericEntityException {
        HashMap equalsMap = new HashMap();
        EntityExpr entityExpr = null;
        QueryInfo queryInfo = new QueryInfo( delegator, entity);

        //convert existing expressions into AND clauses.
        for (int i = 0; i < entityExpressions.size(); i++) {
            entityExpr = (EntityExpr) entityExpressions.get(i);

            Object lhs = (Object) entityExpr.getLhs();
            Object rhs = (Object) entityExpr.getRhs();
			EntityComparisonOperator op = (EntityComparisonOperator) entityExpr.getOperator();

            if (lhs instanceof EntityAttribute &&
                    rhs instanceof EntityAttribute) {
                lhs = (EntityAttribute) lhs;
                rhs = (EntityAttribute) rhs;
                
                String firstEntity = ((EntityAttribute) lhs).getEntity();
                String secondEntity = ((EntityAttribute) rhs).getEntity();
                if ( !firstEntity.equals(secondEntity) )
                {
					if ( !op.equals( EntityOperator.EQUALS ))
						throw new IllegalArgumentException("Join operator must be EQUALS");
						
                	queryInfo.addJoin(firstEntity, secondEntity, Boolean.FALSE, ((EntityAttribute) lhs).getField(),
					              ((EntityAttribute) rhs).getField());
				}
				else
				{
					queryInfo.addCondition( firstEntity, ((EntityAttribute) lhs).getField(), op, ((EntityAttribute) rhs).getField());
				}
            } else {
                if (lhs instanceof EntityAttribute) {
                	queryInfo.addCondition( ((EntityAttribute) lhs).getEntity(), ((EntityAttribute) lhs).getField(), op, rhs);
                } else {
					queryInfo.addCondition( entity, (String) lhs, op, rhs);
                }
            }
        }

        buildSecurityInfo(queryInfo, userInfo, securityInfo, entity, delegator, securityType);

		queryInfo.setOrderBy( orderBy );
		return queryInfo.executeQuery(); 
    }



    /**
     * DOCUMENT ME!
     *
     * @param entity 
     * @param entityExpressions 
     * @param orderBy 
     * @param userInfo 
     * @param securityInfo 
     * @param delegator 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public static List findByClause(String entity, List entityExpressions,
        List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
        GenericDelegator delegator, boolean old_not_used_anymore) throws GenericEntityException {

        Debug.logVerbose("[findByClause] userInfo: " + userInfo.toString(), module);
		QueryInfo queryInfo = new QueryInfo( delegator, entity);	

        ArrayList newExpressions = new ArrayList(entityExpressions);
        HashMap equalsMap = new HashMap();
        buildSecurityInfo(queryInfo, userInfo, securityInfo, entity, delegator, "TEAM");

		throw new IllegalArgumentException("findByClause not supported");
       // return delegator.findByClause(entity, newExpressions, equalsMap, orderBy);
    }

    /**
     * DOCUMENT ME!
     *
     * @param entity 
     * @param entityExpressions 
     * @param orderBy 
     * @param userInfo 
     * @param securityInfo 
     * @param delegator 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public static List findByClauseRoleOnly(String entity,
        List entityExpressions, List orderBy, UserInfo userInfo,
        SecurityLinkInfo securityInfo, GenericDelegator delegator, boolean old_not_used_anymore)
        throws GenericEntityException {
        ArrayList newExpressions = new ArrayList(entityExpressions);
        HashMap equalsMap = new HashMap();
        
        throw new IllegalArgumentException("findByClauseRoleOnly not supported");
       // newExpressions = buildSecurityInfo(newExpressions, userInfo,
         //       securityInfo, entity, delegator, "ROLE");

//        return delegator.findByClause(entity, newExpressions, equalsMap, orderBy);
    }

	public static List findByCondition(String entity, QueryInfo queryInfo,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {

		Debug.logVerbose("[findByClause] userInfo: " + userInfo.toString(), module);

		buildSecurityInfo(queryInfo, userInfo, securityInfo, entity, delegator, "TEAM");
		queryInfo.setOrderBy( orderBy );
		return queryInfo.executeQuery();
	}

	public static List findByCondition(String entity, EntityCondition condition,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {

		Debug.logVerbose("[findByCondition] userInfo: " + userInfo.toString(), module);
		QueryInfo queryInfo = new QueryInfo( delegator, entity );
		queryInfo.addCondition( condition );
		return findByCondition( entity, queryInfo, orderBy, userInfo, securityInfo, delegator ); 
	}


	public static EntityListIterator findListIteratorByCondition(String entity, EntityCondition condition,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {

		Debug.logVerbose("[findListIteratorByCondition] userInfo: " + userInfo.toString(), module);
		QueryInfo queryInfo = new QueryInfo( delegator, entity );
		queryInfo.addCondition( condition );
		return findListIteratorByCondition( entity, queryInfo, orderBy, userInfo, securityInfo, delegator ); 
	}

	public static EntityListIterator findListIteratorByCondition(String entity, QueryInfo queryInfo,
		List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
		GenericDelegator delegator) throws GenericEntityException {

		Debug.logVerbose("[findByClause] userInfo: " + userInfo.toString(), module);

		buildSecurityInfo(queryInfo, userInfo, securityInfo, entity, delegator, "TEAM");
		queryInfo.setOrderBy( orderBy );
		return queryInfo.getQueryIterator();
	}


    /**
     * DOCUMENT ME!
     *
     * @param entity 
     * @param entityExpressions 
     * @param orderBy 
     * @param userInfo 
     * @param securityInfo 
     * @param delegator 
     *
     * @return 
     *
     * @throws GenericEntityException 
     */
    public static List findByLike(String entity, List entityExpressions,
        List orderBy, UserInfo userInfo, SecurityLinkInfo securityInfo,
        GenericDelegator delegator) throws GenericEntityException 
    {
		return findByLike( entity, entityExpressions, orderBy, userInfo, securityInfo, delegator, "TEAM");
    }

	/**
	 * DOCUMENT ME!
	 *
	 * @param entity 
	 * @param entityExpressions 
	 * @param orderBy 
	 * @param userInfo 
	 * @param securityInfo 
	 * @param delegator 
	 *
	 * @return 
	 *
	 * @throws GenericEntityException 
	 */
	public static List findByLikeRoleOnly(String entity,
		List entityExpressions, List orderBy, UserInfo userInfo,
		SecurityLinkInfo securityInfo, GenericDelegator delegator)
		throws GenericEntityException 
	{
		return findByLike( entity, entityExpressions, orderBy, userInfo, securityInfo, delegator, "ROLE");
	}
	/**
	 * DOCUMENT ME!
	 *
	 * @param entity 
	 * @param entityExpressions 
	 * @param orderBy 

⌨️ 快捷键说明

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