保存新建小组接口管理员组织数据范围调整

This commit is contained in:
anhc 2022-07-14 10:04:21 +08:00
parent 873c698649
commit 448ca807c2
2 changed files with 71 additions and 7 deletions

View File

@ -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<CoeCooperationMemberModel> members = new ArrayList<>();
List<String> 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<CoeUserModel> 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<CoeCooperationMemberModel> members = new ArrayList<>();
List<String> 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<CoeUserModel> 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){
//重新创建默认用户权限