Browse Source

fix:指标按钮控制

Roc 2 months ago
parent
commit
321d794bce

+ 0 - 3
controllers/data_manage/chart_info_share.go

@@ -83,9 +83,6 @@ func (c *ChartInfoShareController) UserList() {
 		return
 	}
 	resp.List = list
-	if len(list) > 0 {
-		resp.ShareType = list[0].ShareType
-	}
 
 	br.Ret = 200
 	br.Success = true

+ 3 - 3
controllers/data_manage/edb_classify.go

@@ -112,7 +112,7 @@ func (this *EdbClassifyController) ListV2() {
 				v.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 			}
 
-			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 			v.Button = button
 			edbInfoMap[v.ClassifyId] = append(edbInfoMap[v.ClassifyId], v)
@@ -898,7 +898,7 @@ func (this *EdbClassifyController) ClassifyEdbInfoList() {
 				continue
 			}
 			v.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
-			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 			v.Button = button
 
@@ -1165,7 +1165,7 @@ func (this *EdbClassifyController) SimpleList() {
 					continue
 				}
 				v.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, currClassify.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
-				button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+				button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 				button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 				v.Button = button
 				v.Children = make([]*data_manage.EdbClassifyItems, 0)

+ 6 - 6
controllers/data_manage/edb_info.go

@@ -642,7 +642,7 @@ func (this *EdbInfoController) EdbInfoList() {
 	}
 
 	// 按钮校验
-	button := data.GetEdbOpButton(this.SysUser, edbInfoItem.SysUserId, edbInfoItem.EdbType, edbInfoItem.EdbInfoType, edbInfoItem.HaveOperaAuth, editShareEdbInfoIdMap)
+	button := data.GetEdbOpButton(this.SysUser, edbInfoItem.SysUserId, edbInfoItem.EdbInfoId, edbInfoItem.EdbType, edbInfoItem.EdbInfoType, edbInfoItem.HaveOperaAuth, editShareEdbInfoIdMap)
 	button.AddButton = false
 	edbInfoItem.Button = button
 	edbInfoItem.DataList = make([]*data_manage.EdbData, 0)
@@ -909,7 +909,7 @@ func (this *EdbInfoController) EdbInfoEdit() {
 	}
 
 	// 编辑权限校验
-	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
+	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
 	if !button.OpButton {
 		br.Msg = "无权限操作"
 		br.IsSendEmail = false
@@ -1431,7 +1431,7 @@ func (this *EdbInfoController) EdbInfoMove() {
 	}
 
 	// 移动权限校验
-	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
+	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
 	if !button.MoveButton {
 		br.Msg = "无权限操作"
 		br.IsSendEmail = false
@@ -1952,7 +1952,7 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 				tmpEdbInfoItem.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(tmpEdbInfoItem.IsJoinPermission, currClassify.IsJoinPermission, tmpEdbInfoItem.EdbInfoId, tmpEdbInfoItem.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 			}
 			// 权限校验
-			tmpEdbInfoItem.Button = data.GetEdbOpButton(this.SysUser, tmpEdbInfoItem.SysUserId, tmpEdbInfoItem.EdbType, tmpEdbInfoItem.EdbInfoType, tmpEdbInfoItem.HaveOperaAuth, editShareEdbInfoIdMap)
+			tmpEdbInfoItem.Button = data.GetEdbOpButton(this.SysUser, tmpEdbInfoItem.SysUserId, tmpEdbInfoItem.EdbInfoId, tmpEdbInfoItem.EdbType, tmpEdbInfoItem.EdbInfoType, tmpEdbInfoItem.HaveOperaAuth, editShareEdbInfoIdMap)
 
 		}
 	}
@@ -3950,7 +3950,7 @@ func (this *EdbInfoController) EdbChartList() {
 						continue
 					}
 
-					v.Button = data.GetEdbOpButton(sysUser, v.SysUserId, v.EdbType, v.EdbInfoType, v.HaveOperaAuth, editShareEdbInfoIdMap)
+					v.Button = data.GetEdbOpButton(sysUser, v.SysUserId, v.EdbInfoId, v.EdbType, v.EdbInfoType, v.HaveOperaAuth, editShareEdbInfoIdMap)
 				}
 
 				respList = append(respList, v)
@@ -4031,7 +4031,7 @@ func (this *EdbInfoController) Modify() {
 	}
 
 	// 编辑权限校验
-	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
+	button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
 	if !button.OpButton {
 		br.Msg = "无权限操作"
 		return

+ 1 - 5
controllers/data_manage/edb_info_share.go

@@ -82,9 +82,6 @@ func (c *EdbInfoShareController) UserList() {
 		return
 	}
 	resp.List = list
-	if len(list) > 0 {
-		resp.ShareType = list[0].ShareType
-	}
 
 	br.Ret = 200
 	br.Success = true
@@ -366,7 +363,7 @@ func (c *EdbInfoShareController) List() {
 		return
 	}
 	for _, edbInfo := range respList {
-		edbInfo.Button = data.GetEdbOpButton(c.SysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, true, editShareEdbInfoIdMap)
+		edbInfo.Button = data.GetEdbOpButton(c.SysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, true, editShareEdbInfoIdMap)
 	}
 
 	page = paging.GetPaging(currentIndex, pageSize, int(dataCount))
@@ -617,7 +614,6 @@ func (c *EdbInfoShareController) BatchSave() {
 
 	// 设置
 	if num > 0 {
-
 		obj := data_manage.EdbInfoShare{}
 		err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)
 		if err != nil {

+ 2 - 2
controllers/data_manage/predict_edb_info.go

@@ -172,7 +172,7 @@ func (this *PredictEdbInfoController) EdbChartList() {
 						continue
 					}
 
-					v.Button = data.GetEdbOpButton(sysUser, v.SysUserId, v.EdbType, v.EdbInfoType, v.HaveOperaAuth, editShareEdbInfoIdMap)
+					v.Button = data.GetEdbOpButton(sysUser, v.SysUserId, v.EdbInfoId, v.EdbType, v.EdbInfoType, v.HaveOperaAuth, editShareEdbInfoIdMap)
 
 					respList = append(respList, v)
 				}
@@ -1956,7 +1956,7 @@ func (this *PredictEdbInfoController) ClassifyEdbInfoItems() {
 				v.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 			}
 
-			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+			button := data.GetEdbOpButton(this.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 			v.Button = button
 

+ 2 - 2
controllers/data_manage/public_edb_classify.go

@@ -76,7 +76,7 @@ func (c *EdbPublicClassifyController) SimpleList() {
 			// 查询当前公共分类信息
 			for _, v := range allEdbInfo {
 				v.HaveOperaAuth = true
-				button := data.GetEdbOpButton(c.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+				button := data.GetEdbOpButton(c.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 				button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 				v.Button = button
 				v.Children = make([]*data_manage.EdbClassifyItems, 0)
@@ -600,7 +600,7 @@ func (c *EdbPublicClassifyController) ListV2() {
 				v.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 			}
 
-			button := data.GetEdbOpButton(c.SysUser, v.SysUserId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
+			button := data.GetEdbOpButton(c.SysUser, v.SysUserId, v.EdbInfoId, v.EdbType, utils.EDB_INFO_TYPE, v.HaveOperaAuth, editShareEdbInfoIdMap)
 			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 			v.Button = button
 			edbInfoMap[v.ClassifyId] = append(edbInfoMap[v.ClassifyId], v)

+ 2 - 2
models/data_manage/chart_info_share.go

@@ -77,8 +77,8 @@ func (m ChartInfoShare) SaveChartInfoShare(chartInfoIdList, userIdList []int, sh
 	}()
 
 	// 先删除原来的配置,新增最新的配置
-	sql := fmt.Sprintf("DELETE FROM %s WHERE chart_info_id IN (?) ", m.TableName())
-	err = tx.Exec(sql, chartInfoIdList).Error
+	sql := fmt.Sprintf("DELETE FROM %s WHERE chart_info_id IN (?) AND share_type = ? ", m.TableName())
+	err = tx.Exec(sql, chartInfoIdList, shareType).Error
 	if err != nil {
 		return
 	}

+ 2 - 2
models/data_manage/edb_info_share.go

@@ -77,8 +77,8 @@ func (m EdbInfoShare) SaveEdbInfoShare(edbInfoIdList, userIdList []int, shareTyp
 	}()
 
 	// 先删除原来的配置,新增最新的配置
-	sql := fmt.Sprintf("DELETE FROM %s WHERE edb_info_id IN (?) ", m.TableName())
-	err = tx.Exec(sql, edbInfoIdList).Error
+	sql := fmt.Sprintf("DELETE FROM %s WHERE edb_info_id IN (?) AND share_type = ? ", m.TableName())
+	err = tx.Exec(sql, edbInfoIdList, shareType).Error
 	if err != nil {
 		return
 	}

+ 1 - 2
models/data_manage/response/chart_info_share.go

@@ -5,8 +5,7 @@ import "eta_gn/eta_api/models/data_manage"
 // ChartInfoShareUserResp
 // @Description: 获取指标分享用户列表
 type ChartInfoShareUserResp struct {
-	ShareType int8                          `description:"分享类型,1:仅查看;2:可编辑"`
-	List      []*data_manage.ChartInfoShare `description:"分享用户列表"`
+	List []*data_manage.ChartInfoShare `description:"分享用户列表"`
 }
 
 // ChartShareListResp

+ 1 - 2
models/data_manage/response/edb_info_share.go

@@ -5,8 +5,7 @@ import "eta_gn/eta_api/models/data_manage"
 // EdbInfoShareUserResp
 // @Description: 获取指标分享用户列表
 type EdbInfoShareUserResp struct {
-	ShareType int8                        `description:"分享类型,1:仅查看;2:可编辑"`
-	List      []*data_manage.EdbInfoShare `description:"分享用户列表"`
+	List []*data_manage.EdbInfoShare `description:"分享用户列表"`
 }
 
 // EdbShareListResp

+ 3 - 3
services/data/edb_classify.go

@@ -1158,7 +1158,7 @@ func MoveEdbClassify(req data_manage.MoveEdbClassifyReq, sysUser *system.Admin,
 		}
 
 		// 移动权限校验
-		button := GetEdbOpButton(sysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
+		button := GetEdbOpButton(sysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
 		if !button.MoveButton {
 			errMsg = "无操作权限"
 			err = errors.New(errMsg)
@@ -1564,7 +1564,7 @@ func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, nextC
 }
 
 // GetEdbOpButton 获取ETA指标的操作权限
-func GetEdbOpButton(sysUser *system.Admin, belongUserId, edbType, edbInfoType int, haveOperaAuth bool, editShareEdbMap map[int]bool) (button data_manage.EdbClassifyItemsButton) {
+func GetEdbOpButton(sysUser *system.Admin, belongUserId, edbInfoId, edbType, edbInfoType int, haveOperaAuth bool, editShareEdbMap map[int]bool) (button data_manage.EdbClassifyItemsButton) {
 	// 没有数据权限就直接返回
 	if !haveOperaAuth {
 		return
@@ -1585,7 +1585,7 @@ func GetEdbOpButton(sysUser *system.Admin, belongUserId, edbType, edbInfoType in
 		button.MoveButton = true
 	} else {
 		// 拥有别人分享的操作权限
-		if _, ok := editShareEdbMap[sysUser.AdminId]; ok {
+		if _, ok := editShareEdbMap[edbInfoId]; ok {
 			button.OpButton = true
 		}
 	}

+ 1 - 1
services/data/predict_edb_info.go

@@ -81,7 +81,7 @@ func MovePredictEdbInfo(edbInfoId, classifyId, prevEdbInfoId, nextEdbInfoId int,
 	}
 
 	// 移动权限校验
-	button := GetEdbOpButton(sysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
+	button := GetEdbOpButton(sysUser, edbInfo.SysUserId, edbInfo.EdbInfoId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth, editShareEdbInfoIdMap)
 	if !button.MoveButton {
 		errMsg = "无权限操作"
 		err = nil