This commit is contained in:
shangguochao 2022-07-05 10:57:50 +08:00
commit e22cee6ac4
6 changed files with 74 additions and 23 deletions

View File

@ -679,33 +679,76 @@ public class CooperationWeb extends ActionWeb {
// 基础信息
String teamId = dataObj.getString("teamId");
JSONArray userIds = dataObj.getJSONArray("userIds");
String roleId = dataObj.getString("roleId");
CoeCooperationAPIManager api = CoeCooperationAPIManager.getInstance();
CoeCooperationTeamModel team = api.queryCooperationTeamById(teamId);
if (team == null) {
return ResponseObject.newErrResponse("保存失败,小组不存在").toString();
}
// 查询当前设置的角色
CoeCooperationRoleDao roleDao = new CoeCooperationRoleDao();
CoeCooperationRoleModel role = roleDao.getInstance(roleId);
// 如果当前设置的角色不是管理员查询其他用户是否有管理员角色小组中必须有至少一位管理员用户
if (role.getRoleType() != CoeCooperationConst.ROLE_TYPE_MANAGER) {
// 查询其他用户的角色是否有管理员
boolean flag = false;
List<String> adminUsers = api.queryCooperationAdminUsers(teamId);
for (String adminUser : adminUsers) {
if (!userIds.contains(adminUser)) {
flag = true;
break;
boolean isOlderVersion = SDK.getAppAPI().getPropertyBooleanValue("com.actionsoft.apps.coe.pal", "IsOlderVersion", true);
if (isOlderVersion){
// 查询当前设置的角色
String roleId = dataObj.getString("roleId");
CoeCooperationRoleDao roleDao = new CoeCooperationRoleDao();
CoeCooperationRoleModel role = roleDao.getInstance(roleId);
// 如果当前设置的角色不是管理员查询其他用户是否有管理员角色小组中必须有至少一位管理员用户
if (role.getRoleType() != CoeCooperationConst.ROLE_TYPE_MANAGER) {
// 查询其他用户的角色是否有管理员
boolean flag = false;
List<String> adminUsers = api.queryCooperationAdminUsers(teamId);
for (String adminUser : adminUsers) {
if (!userIds.contains(adminUser)) {
flag = true;
break;
}
}
if (!flag) {
return ResponseObject.newErrResponse("不允许修改,小组中必须至少存在一位管理员用户").toString();
}
}
if (!flag) {
return ResponseObject.newErrResponse("不允许修改,小组中必须至少存在一位管理员用户").toString();
for (int i = 0; i < userIds.size(); i++) {
api.updateCooperationUserRole(teamId, userIds.getString(i), roleId, _uc.getUID());
}
}else {
//设置多角色的校验
JSONArray roleIds = dataObj.getJSONArray("roleId");
CoeCooperationRoleDao roleDao = new CoeCooperationRoleDao();
for (int i = 0; i < roleIds.size(); i++) {
String roleId = roleIds.getString(i);
CoeCooperationRoleModel role = roleDao.getInstance(roleId);
// 如果当前设置的角色不是管理员查询其他用户是否有管理员角色小组中必须有至少一位管理员用户
if (role.getRoleType() != CoeCooperationConst.ROLE_TYPE_MANAGER) {
// 查询其他用户的角色是否有管理员
boolean flag = false;
List<String> adminUsers = api.queryCooperationAdminUsers(teamId);
for (String adminUser : adminUsers) {
if (!userIds.contains(adminUser)) {
flag = true;
break;
}
}
if (!flag) {
return ResponseObject.newErrResponse("不允许修改,小组中必须至少存在一位管理员用户").toString();
}
}
}
//设置多角色
Timestamp now = new Timestamp(System.currentTimeMillis());
for (int i = 0; i < userIds.size(); i++) {
//删除原有角色
api.removeCooperationMemeber(teamId,userIds.getString(i));
List<CoeCooperationMemberModel> memberList = new ArrayList<>();
for (int j = 0; j < roleIds.size(); j++) {
String roleId = roleIds.getString(j);
CoeCooperationMemberModel memberModel = new CoeCooperationMemberModel(UUIDGener.getUUID(),teamId,userIds.getString(i),roleId,_uc.getUID(),now,_uc.getUID(),now);
memberList.add(memberModel);
}
//重新添加多角色
api.createCooperationMemebers(memberList);
}
}
for (int i = 0; i < userIds.size(); i++) {
api.updateCooperationUserRole(teamId, userIds.getString(i), roleId, _uc.getUID());
}
//更新用户权限缓存
CooperationCache.updateTeamInfo(teamId);
return ro.toString();
}

View File

@ -2653,7 +2653,7 @@ public class CoeProcessLevelWeb extends ActionWeb {
event = "readonly='readonly' data-value="+ dataArr +" groupPath=\"" + attributeModel.getGroupPath() + "\" ref="+ refObj +" onclick=\"openRelationAwsorgDialog($(this))\"";
input = "<input type='text' class='awsui-textbox' name=\"" + id + "\" id=\"" + id + "\" value=\"" + inputValue + "\" sid=\"" + sid + "\" uuid=\"" + uuid + "\" isRequired='" + isRequired + "' data-originvalue='" + inputValue + "' " + event + "/>";
} else if("DateTimePicker".equals(type)) {
input = "<input class=\"awsui-textbox\" name=\"" + id + "\" id=\"dateTimePicker\" sid=\"" + sid + "\" uuid=\"" + uuid + "\" data-originvalue='" + inputValue + "' value='" + inputValue + "' isRequired='" + isRequired + "' onblur='saveContent($(this));'>" + "</input>";
input = "<input class=\"awsui-textbox\" id=\"dateTimePicker_"+id+"\" name=\"dateTimePicker\" sid=\"" + sid + "\" uuid=\"" + uuid + "\" data-originvalue='" + inputValue + "' value='" + inputValue + "' isRequired='" + isRequired + "' onblur='saveContent($(this));'>" + "</input>";
}else if ("table".equals(type)){
JSONObject table = JSON.parseObject(jsonValue);

View File

@ -201,8 +201,7 @@
<script>
$(document).ready(function(){
$('#dateTimePicker').datepicker({dateFmt:"yyyy-MM-dd HH:mm:ss"});
$('input[name="dateTimePicker"]').datepicker({dateFmt:"yyyy-MM-dd HH:mm:ss"})
//更多特性权限
if($('#moreAttrRight').val() == "false") {
$("#showMoreAttrUL").remove();

View File

@ -192,6 +192,8 @@
// 帮助工具栏扩展url
var customHelpToolExtMenuUrl = <#customHelpToolExtMenuUrl>;
// 图形定义
var methodObjectDesc = <#methodObjectDesc>;
//是否需要保存提示
var isSave = true;
var isNeedPutMessage = true;
@ -864,6 +866,12 @@
<li ac="selectall">全选
<div class="extend">Ctrl+A</div>
</li>
<li ac="selectVertical">调整垂直间距
<div class="extend"></div>
</li>
<li ac="selectHorizontal">调整水平间距
<div class="extend"></div>
</li>
<li class="devider devi_selectall"></li>
<li ac="drawline">
<div class="ico linkertype_normal"></div>创建连线
@ -874,6 +882,7 @@
<div class="extend"></div>
</li>
</ul>
<div id="designer_subline" style="position:absolute;"></div>
</div>
</div>
<div id="shape_img_container"></div>
@ -881,7 +890,7 @@
</div>
<div id="shape_thumb" class="menu">
<canvas width="160px"></canvas>
<div></div>
<div style="width: 180px;"></div>
</div>
<div id="dock">
<div class="dock_header"></div>

View File

@ -1006,7 +1006,7 @@ function openRelationDialog(obj, callback) {
cls : "yellow",
handler : function() {
// 刷新页面
document.getElementById("id-awsui-win-frm-2013-frmrelationDialog").contentWindow.location.reload(true);
parent.document.getElementById("id-awsui-win-frm-2013-frmrelationDialog").contentWindow.location.reload(true);
}
},{
text : methodName,