diff --git a/com.actionsoft.apps.coe.pal/lib/com.actionsoft.apps.coe.pal.jar b/com.actionsoft.apps.coe.pal/lib/com.actionsoft.apps.coe.pal.jar index 6b8c4223..b7ee575a 100644 Binary files a/com.actionsoft.apps.coe.pal/lib/com.actionsoft.apps.coe.pal.jar and b/com.actionsoft.apps.coe.pal/lib/com.actionsoft.apps.coe.pal.jar differ diff --git a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/cooperation/CoeCooperationAPIManager.java b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/cooperation/CoeCooperationAPIManager.java index 04db42a2..d1e71901 100644 --- a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/cooperation/CoeCooperationAPIManager.java +++ b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/cooperation/CoeCooperationAPIManager.java @@ -482,21 +482,38 @@ public class CoeCooperationAPIManager { } } if (addToRolePerm) { - //Todo: 根据权限转化新建文件权限 - CoeCooperationMemberModel memberModel = new CoeCooperationMemberDao().getModelByTeamUser(teamId, userId); - String roleId = memberModel.getRoleId(); - CoeCooperationRoleModel roleModel = new CoeCooperationRoleDao().getInstance(roleId); - // 判断是否设定的默认全部权限 - if (!CoeCooperationConst.PERM_ALL.equals(roleModel.getDataPerm())) { - // 获取现有角色数据权限,判断是否已存在 - List rolePermList = new CoeCooperationRolePermDao().getRolePermListByRole(teamId, roleId); - if (!rolePermList.contains(palVersionId)) { - // 添加 - CoeCooperationRolePermModel rolePerm = new CoeCooperationRolePermModel(UUIDGener.getUUID(), teamId, roleId, palVersionId); - new CoeCooperationRolePermDao().insert(rolePerm); + //新版权限向隐藏角色中添加 + boolean isOlderVersion = SDK.getAppAPI().getPropertyBooleanValue("com.actionsoft.apps.coe.pal", "IsOlderVersion", true); + if (isOlderVersion){ + CoeCooperationMemberModel memberModel = new CoeCooperationMemberDao().getModelByTeamUser(teamId, userId); + String roleId = memberModel.getRoleId(); + CoeCooperationRoleModel roleModel = new CoeCooperationRoleDao().getInstance(roleId); + // 判断是否设定的默认全部权限 + if (!CoeCooperationConst.PERM_ALL.equals(roleModel.getDataPerm())) { + // 获取现有角色数据权限,判断是否已存在 + List rolePermList = new CoeCooperationRolePermDao().getRolePermListByRole(teamId, roleId); + if (!rolePermList.contains(palVersionId)) { + // 添加 + CoeCooperationRolePermModel rolePerm = new CoeCooperationRolePermModel(UUIDGener.getUUID(), teamId, roleId, palVersionId); + new CoeCooperationRolePermDao().insert(rolePerm); + } + } + }else { + //查询用户权限 + CoeCooperationRoleModel hideRole = new CoeCooperationRoleDao().getCooperationHideRoleByRoleName(teamId, userId); + if (!CoeCooperationConst.PERM_ALL.equals(hideRole.getDataPerm())) { + // 获取用户权限,判断是否已存在 + List rolePermList = new CoeCooperationRolePermDao().getRolePermListByRole(teamId, hideRole.getId()); + if (!rolePermList.contains(palVersionId)) { + // 添加角色权限 + CoeCooperationRolePermModel rolePerm = new CoeCooperationRolePermModel(UUIDGener.getUUID(), teamId, hideRole.getId(), palVersionId); + new CoeCooperationRolePermDao().insert(rolePerm); + } } } } + //更新用户权限缓存 + CooperationCache.updateTeamInfo(teamId); return true; } @@ -855,6 +872,11 @@ public class CoeCooperationAPIManager { }else { userInfo.getRoleIds().add(memberModel.getRoleId()); } + //加载隐藏角色 + CoeCooperationRoleModel hideRole = new CoeCooperationRoleDao().getCooperationHideRoleByRoleName(teamId, memberModel.getUserId()); + if (null != hideRole && !userInfo.getRoleIds().contains(hideRole.getId())){ + userInfo.getRoleIds().add(hideRole.getId()); + } userMap.put(memberModel.getUserId(),userInfo); } @@ -883,6 +905,7 @@ public class CoeCooperationAPIManager { Set set = new HashSet<>(); for (String roleId : roleIds) { CoeCooperationRoleModel roleModel = new CoeCooperationRoleDao().queryById(roleId); + //TODO:可在这里做隐藏角色判断,判断是否为新版权限,否则去除isUser为1的角色 if (null == roleModel){ continue; } @@ -897,6 +920,7 @@ public class CoeCooperationAPIManager { Set set = new HashSet<>(); for (String roleId : roleIds) { CoeCooperationRoleModel roleModel = new CoeCooperationRoleDao().queryById(roleId); + //TODO:可在这里做隐藏角色判断,判断是否为新版权限,否则去除isUser为1的角色 if (null == roleModel){ continue; } @@ -910,6 +934,7 @@ public class CoeCooperationAPIManager { private boolean isAllDataPerm(List roleIds){ for (String roleId : roleIds) { CoeCooperationRoleModel roleModel = new CoeCooperationRoleDao().queryById(roleId); + //TODO:可在这里做隐藏角色判断,判断是否为新版权限,否则去除isUser为1的角色 if (null == roleModel){ continue; }