diff --git a/com.actionsoft.apps.coe.pal.cooperation/lib/com.actionsoft.apps.coe.pal.cooperation.jar b/com.actionsoft.apps.coe.pal.cooperation/lib/com.actionsoft.apps.coe.pal.cooperation.jar index bec059bb..bf2b1c65 100644 Binary files a/com.actionsoft.apps.coe.pal.cooperation/lib/com.actionsoft.apps.coe.pal.cooperation.jar and b/com.actionsoft.apps.coe.pal.cooperation/lib/com.actionsoft.apps.coe.pal.cooperation.jar differ diff --git a/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/web/CooperationWeb.java b/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/web/CooperationWeb.java index c8479ba3..cf6a8726 100644 --- a/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/web/CooperationWeb.java +++ b/com.actionsoft.apps.coe.pal.cooperation/src/com/actionsoft/apps/coe/pal/cooperation/web/CooperationWeb.java @@ -197,16 +197,27 @@ public class CooperationWeb extends ActionWeb { if (adminArr.size() == 0) { adminArr.add(_uc.getUID()); } - // 校验管理员是否全部都在pal用户中 - String illegalUsers = checkCoeUserValid(adminArr); - if (illegalUsers.length() > 0) { - return ResponseObject.newErrResponse("以下用户非PAL用户,请重新选择PAL用户进行保存[" + illegalUsers + "]").toString(); + //新旧权限版本 + boolean isOlderVersion = SDK.getAppAPI().getPropertyBooleanValue("com.actionsoft.apps.coe.pal", "IsOlderVersion", true); + if (isOlderVersion){ + // 校验管理员是否全部都在pal用户中 + String illegalUsers = checkCoeUserValid(adminArr); + if (illegalUsers.length() > 0) { + return ResponseObject.newErrResponse("以下用户非PAL用户,请重新选择PAL用户进行保存[" + illegalUsers + "]").toString(); + } + }else{ + for (int i = 0; i < adminArr.size(); i++) { + String adminId = adminArr.getString(i); + UserModel model = UserCache.getModel(adminId); + if (null == model){ + return ResponseObject.newErrResponse("管理员id参数异常").toString(); + } + } } + // 小组权限信息 JSONArray repositoryVerIds = dataObj.getJSONArray("repositorys"); CoeCooperationAPIManager api = CoeCooperationAPIManager.getInstance(); - //新权限标志 - boolean isOlderVersion = SDK.getAppAPI().getPropertyBooleanValue("com.actionsoft.apps.coe.pal", "IsOlderVersion", true); if (UtilString.isEmpty(teamId)) {// 新建 Timestamp nowTime = new Timestamp(System.currentTimeMillis()); teamId = UUIDGener.getUUID(); @@ -243,10 +254,37 @@ public class CooperationWeb extends ActionWeb { CoeCooperationRoleModel role = api.queryCooperationRoleByType(teamId, CoeCooperationConst.ROLE_TYPE_MANAGER).get(0); // 创建管理员信息 List members = new ArrayList<>(); + List awsUsers = new ArrayList<>(); for (int i = 0; i < adminArr.size(); i++) { - CoeCooperationMemberModel member = new CoeCooperationMemberModel(UUIDGener.getUUID(), teamId, adminArr.getString(i), role.getId(), _uc.getUID(),nowTime, _uc.getUID(), nowTime); + String adminId = adminArr.getString(i); + CoeCooperationMemberModel member = new CoeCooperationMemberModel(UUIDGener.getUUID(), teamId, adminId, role.getId(), _uc.getUID(),nowTime, _uc.getUID(), nowTime); members.add(member); + //新权限 + if (!isOlderVersion){ + boolean coeUserFlag = new CoeUser().validateIsAccessCOE(adminId); + if (!coeUserFlag && null != UserCache.getModel(adminId)){ + awsUsers.add(adminId); + } + } } + + //有额外的aws平台用户 + if (!awsUsers.isEmpty()){ + CoeUser coeUserDao = new CoeUser(); + //pal最大用户量许可 + int maxUser = Quota.getMaxCoEPALUser(); + List coeUsers = coeUserDao.getCoeUsers(); + if (maxUser < coeUsers.size() + awsUsers.size()){ + //超出最大用户量 + return ResponseObject.newWarnResponse("用户数已超过许可总数(许可最大用户数" + maxUser + ")").toString(); + } + coeUserDao.batchInsert(awsUsers,false); + // 操作行为日志记录 + if (SDK.getAppAPI().getPropertyBooleanValue(CoEConstant.APP_ID, "IS_RECORD_OP_LOG", false)) { + CoEOpLogAPI.auditOkOp(_uc, CoEOpLogConst.MODULE_CATEGORY_COOPERATION, CoEOpLogConst.OP_UPDATE, CoEOpLogConst.INFO_USER_CREATE); + } + } + isOk = api.createCooperationMemebers(members); msg = "保存小组管理员信息"; if (isOk && repositoryVerIds.size() > 0) { @@ -290,13 +328,39 @@ public class CooperationWeb extends ActionWeb { CoeCooperationRoleModel role = api.queryCooperationRoleByType(teamId, CoeCooperationConst.ROLE_TYPE_MANAGER).get(0); // 创建管理员信息 List members = new ArrayList<>(); + List awsUsers = new ArrayList<>(); for (int i = 0; i < adminArr.size(); i++) { String userId = adminArr.getString(i); // 删除该用户(若存在) api.removeCooperationMemeber(teamId, userId); CoeCooperationMemberModel member = new CoeCooperationMemberModel(UUIDGener.getUUID(), teamId, userId, role.getId(), _uc.getUID(),null, _uc.getUID(), null); members.add(member); + //新权限 + if (!isOlderVersion){ + boolean coeUserFlag = new CoeUser().validateIsAccessCOE(userId); + if (!coeUserFlag && null != UserCache.getModel(userId)){ + awsUsers.add(userId); + } + } } + + //有额外的aws平台用户 + if (!awsUsers.isEmpty()){ + CoeUser coeUserDao = new CoeUser(); + //pal最大用户量许可 + int maxUser = Quota.getMaxCoEPALUser(); + List coeUsers = coeUserDao.getCoeUsers(); + if (maxUser < coeUsers.size() + awsUsers.size()){ + //超出最大用户量 + return ResponseObject.newWarnResponse("用户数已超过许可总数(许可最大用户数" + maxUser + ")").toString(); + } + coeUserDao.batchInsert(awsUsers,false); + // 操作行为日志记录 + if (SDK.getAppAPI().getPropertyBooleanValue(CoEConstant.APP_ID, "IS_RECORD_OP_LOG", false)) { + CoEOpLogAPI.auditOkOp(_uc, CoEOpLogConst.MODULE_CATEGORY_COOPERATION, CoEOpLogConst.OP_UPDATE, CoEOpLogConst.INFO_USER_CREATE); + } + } + isOk = api.createCooperationMemebers(members); if (isOk && !isOlderVersion){ //重新创建默认用户权限