diff --git a/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/cache/CooperationCache.java b/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/cache/CooperationCache.java index 0237ca20..122234fb 100644 --- a/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/cache/CooperationCache.java +++ b/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/cache/CooperationCache.java @@ -7,6 +7,8 @@ import com.actionsoft.apps.coe.pal.cooperation.constant.CoeCooperationConst; import com.actionsoft.apps.coe.pal.cooperation.constant.Constant; import com.actionsoft.apps.coe.pal.cooperation.extend.CooperationAppManager; import com.actionsoft.apps.coe.pal.cooperation.extend.CooperationAppProfile; +import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.resource.plugin.profile.CachePluginProfile; import com.actionsoft.bpms.commons.cache.Cache; import com.actionsoft.bpms.commons.cache.CacheManager; @@ -75,6 +77,9 @@ public class CooperationCache extends Cache { */ public static UserInfo getUserInfo(String teamId,String userid){ TeamInfo teamInfo = getCache().get(teamId); + if (null == teamInfo){ + return null; + } for (UserInfo user : teamInfo.getUsers()) { if (user.getUserid().equals(userid)){ return user; @@ -137,9 +142,10 @@ public class CooperationCache extends Cache { * 根据小组与用户id获取用户数据访问权限 * @param teamId * @param userid + * @param isValidPermData 查询使用中的文件标志,true:过滤掉进入回收站的数据,false:查询全部权限数据 * @return */ - public static Set getUserDataVisitablePermission(String teamId,String userid){ + public static Set getUserDataVisitablePermission(String teamId,String userid,boolean isValidPermData){ UserInfo userInfo = CooperationCache.getUserInfo(teamId, userid); if (null == userInfo){ return new HashSet<>(); @@ -148,7 +154,20 @@ public class CooperationCache extends Cache { TeamInfo teamInfo = CooperationCache.getTeamInfo(teamId); return teamInfo.getVersionIds(); } - return userInfo.getDataPermission().keySet(); + Set set = new HashSet<>(); + Set keySet = userInfo.getDataPermission().keySet(); + for (String next : keySet) { + if (isValidPermData) { + // 在流程表的校验,抛弃回收站中删除文件 + List verModels = PALRepositoryCache.getByVersionId(next); + if (verModels != null && verModels.size() > 0) { + set.add(next); + } + }else { + set.add(next); + } + } + return set; } /**