小组成员添加接口,用户权限修改

This commit is contained in:
anhc 2022-07-04 14:44:46 +08:00
parent 7c79e2c76f
commit 533eb51700
2 changed files with 34 additions and 4 deletions

View File

@ -35,10 +35,12 @@ import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.org.cache.DepartmentCache;
import com.actionsoft.bpms.org.cache.RoleCache;
import com.actionsoft.bpms.org.cache.UserCache;
import com.actionsoft.bpms.org.model.CompanyModel;
import com.actionsoft.bpms.org.model.DepartmentModel;
import com.actionsoft.bpms.org.model.RoleModel;
import com.actionsoft.bpms.org.model.UserModel;
import com.actionsoft.bpms.server.Quota;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.bpms.util.UtilDate;
@ -591,6 +593,7 @@ public class CooperationWeb extends ActionWeb {
dto.setTeamId(teamId);
dto.setTeamName(team.getTeamName());
dto.setUserId(member.getUserId());
//Todo: 新权限多角色设置
dto.setRoleId(member.getRoleId());
CoeCooperationRoleModel role;
if (roleMap.containsKey(member.getRoleId())) {
@ -1123,10 +1126,14 @@ public class CooperationWeb extends ActionWeb {
return ResponseObject.newErrResponse("角色不存在").toString();
}
JSONArray userArr = object.getJSONArray("userArr");
// 校验管理员是否全部都在pal用户中
String illegalUsers = checkCoeUserValid(userArr);
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(userArr);
if (illegalUsers.length() > 0) {
return ResponseObject.newErrResponse("以下用户非PAL用户请重新选择PAL用户进行保存[" + illegalUsers + "]").toString();
}
}
// 获取未加入小组的用户
List<CoeCooperationMemberModel> members = api.queryCooperationTeamMemberList(teamId);
@ -1136,12 +1143,35 @@ public class CooperationWeb extends ActionWeb {
}
Timestamp time = new Timestamp(System.currentTimeMillis());
List<CoeCooperationMemberModel> memberModels = new ArrayList<>();
ArrayList<String> awsUsers = new ArrayList<>();
for (int i = 0; i < userArr.size(); i++) {
String userId = userArr.getString(i);
if (!teamMemberSet.contains(userId)) {
CoeCooperationMemberModel member = new CoeCooperationMemberModel(UUIDGener.getUUID(), teamId
, userId, roleId, _uc.getUID(), time, _uc.getUID(), time);
memberModels.add(member);
//新权限
if (!isOlderVersion){
boolean coeUserFlag = new CoeUser().validateIsAccessCOE(userId);
if (!coeUserFlag && null != UserCache.getModel(userId)){
awsUsers.add(userId);
}
}
}
}
if (!isOlderVersion){
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);
}
}
// 保存