|
@@ -1,8 +1,14 @@
|
|
package data_manage_permission
|
|
package data_manage_permission
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "eta/eta_api/models/data_manage"
|
|
"eta/eta_api/models/data_manage/data_manage_permission"
|
|
"eta/eta_api/models/data_manage/data_manage_permission"
|
|
|
|
+ "eta/eta_api/models/data_manage/excel"
|
|
|
|
+ "eta/eta_api/models/system"
|
|
"eta/eta_api/utils"
|
|
"eta/eta_api/utils"
|
|
|
|
+ "fmt"
|
|
|
|
+ "github.com/rdlucklib/rdluck_tools/uuid"
|
|
|
|
+ "strings"
|
|
)
|
|
)
|
|
|
|
|
|
// SetEdbChartPermission
|
|
// SetEdbChartPermission
|
|
@@ -18,11 +24,10 @@ import (
|
|
// @param noDataId []string
|
|
// @param noDataId []string
|
|
// @param keyword string
|
|
// @param keyword string
|
|
// @param classify string
|
|
// @param classify string
|
|
|
|
+// @param opUserId int 操作人
|
|
// @return err error
|
|
// @return err error
|
|
// @return errMsg string
|
|
// @return errMsg string
|
|
-func SetEdbChartPermission(source, subSource, userId int, userList []int, isSelectAll bool, dataIdList, noDataIdList []string, keyword, classify string) (err error, errMsg string) {
|
|
|
|
- // TODO 消息通知
|
|
|
|
-
|
|
|
|
|
|
+func SetEdbChartPermission(source, subSource, userId int, userList []int, isSelectAll bool, dataIdList, noDataIdList []string, keyword, classify string, opUserId int) (err error, errMsg string) {
|
|
// 如果勾选全部数据,那么
|
|
// 如果勾选全部数据,那么
|
|
if isSelectAll {
|
|
if isSelectAll {
|
|
// 找出不要的指标ID列表
|
|
// 找出不要的指标ID列表
|
|
@@ -50,46 +55,130 @@ func SetEdbChartPermission(source, subSource, userId int, userList []int, isSele
|
|
// 说明是取消权限管控
|
|
// 说明是取消权限管控
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ uniqueCode := uuid.NewUUID().Hex32()
|
|
|
|
+ content := `数据权限`
|
|
|
|
+ dataList := make([]data_manage_permission.DataItem, 0)
|
|
|
|
+
|
|
switch source {
|
|
switch source {
|
|
case 3, 4: //ETA指标库、ETA预测指标
|
|
case 3, 4: //ETA指标库、ETA预测指标
|
|
- //tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
|
|
|
|
- //if tmpErr != nil {
|
|
|
|
- // err = tmpErr
|
|
|
|
- // return
|
|
|
|
- //}
|
|
|
|
- //if len(tmpList) > 0 {
|
|
|
|
- //}
|
|
|
|
- // 重新设置权限
|
|
|
|
- edbInfoType := 0
|
|
|
|
- if source == 4 {
|
|
|
|
- edbInfoType = 1
|
|
|
|
|
|
+ if source == 3 {
|
|
|
|
+ content += `(ETA指标库)`
|
|
|
|
+ } else {
|
|
|
|
+ content += `(ETA预测指标)`
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(dataIdList)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- err = data_manage_permission.SetPermissionByEdbIdList(dataIdList, userList, edbInfoType)
|
|
|
|
|
|
+ dataIdList = make([]string, 0)
|
|
|
|
+ if len(tmpList) > 0 {
|
|
|
|
+ for _, v := range tmpList {
|
|
|
|
+ dataList = append(dataList, data_manage_permission.DataItem{
|
|
|
|
+ DataId: fmt.Sprint(v.EdbInfoId),
|
|
|
|
+ DataCode: v.EdbCode,
|
|
|
|
+ DataName: v.EdbName,
|
|
|
|
+ })
|
|
|
|
+ dataIdList = append(dataIdList, fmt.Sprint(v.EdbInfoId))
|
|
|
|
+ }
|
|
|
|
+ // 重新设置权限
|
|
|
|
+ edbInfoType := 0
|
|
|
|
+ if source == 4 {
|
|
|
|
+ edbInfoType = 1
|
|
|
|
+ }
|
|
|
|
+ err = data_manage_permission.SetPermissionByEdbIdList(dataIdList, userList, edbInfoType)
|
|
|
|
+ }
|
|
|
|
+
|
|
case 5: //图库
|
|
case 5: //图库
|
|
- //tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
|
|
|
|
- //if tmpErr != nil {
|
|
|
|
- // err = tmpErr
|
|
|
|
- // return
|
|
|
|
- //}
|
|
|
|
- //if len(tmpList) > 0 {
|
|
|
|
- //}
|
|
|
|
- // 重新设置权限
|
|
|
|
- chartSource := utils.CHART_SOURCE_DEFAULT
|
|
|
|
- err = data_manage_permission.SetPermissionByChartIdList(dataIdList, userList, chartSource)
|
|
|
|
|
|
+ content += `(ETA图库)`
|
|
|
|
+ tmpList, tmpErr := data_manage.GetChartInfoListByChartIdList(dataIdList)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if len(tmpList) > 0 {
|
|
|
|
+ dataIdList = make([]string, 0)
|
|
|
|
+ for _, v := range tmpList {
|
|
|
|
+ dataList = append(dataList, data_manage_permission.DataItem{
|
|
|
|
+ DataId: fmt.Sprint(v.ChartInfoId),
|
|
|
|
+ DataCode: fmt.Sprint(v.ChartInfoId),
|
|
|
|
+ DataName: v.ChartName,
|
|
|
|
+ })
|
|
|
|
+ dataIdList = append(dataIdList, fmt.Sprint(v.ChartInfoId))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 重新设置权限
|
|
|
|
+ chartSource := utils.CHART_SOURCE_DEFAULT
|
|
|
|
+ err = data_manage_permission.SetPermissionByChartIdList(dataIdList, userList, chartSource)
|
|
|
|
+ }
|
|
|
|
+
|
|
case 6: // ETA表格
|
|
case 6: // ETA表格
|
|
- //tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
|
|
|
|
- //if tmpErr != nil {
|
|
|
|
- // err = tmpErr
|
|
|
|
- // return
|
|
|
|
- //}
|
|
|
|
- //if len(tmpList) > 0 {
|
|
|
|
- //}
|
|
|
|
- // 重新设置权限
|
|
|
|
- err = data_manage_permission.SetPermissionByExcelIdList(dataIdList, userList, subSource)
|
|
|
|
|
|
+ content += `(ETA表格)`
|
|
|
|
+ tmpList, tmpErr := excel.GetNoContentExcelListByExcelInfoIdList(dataIdList)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if len(tmpList) > 0 {
|
|
|
|
+ dataIdList = make([]string, 0)
|
|
|
|
+ for _, v := range tmpList {
|
|
|
|
+ dataList = append(dataList, data_manage_permission.DataItem{
|
|
|
|
+ DataId: fmt.Sprint(v.ExcelInfoId),
|
|
|
|
+ DataCode: fmt.Sprint(v.ExcelInfoId),
|
|
|
|
+ DataName: v.ExcelName,
|
|
|
|
+ })
|
|
|
|
+ dataIdList = append(dataIdList, fmt.Sprint(v.ExcelInfoId))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 重新设置权限
|
|
|
|
+ err = data_manage_permission.SetPermissionByExcelIdList(dataIdList, userList, subSource)
|
|
|
|
+ }
|
|
default:
|
|
default:
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if err != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var authRecordErr error
|
|
|
|
+ defer func() {
|
|
|
|
+ if authRecordErr != nil {
|
|
|
|
+ utils.FileLog.Error(fmt.Sprintf("记录未设置记录资产权限的记录失败:%s;source:%d;sub_source:%d;数据ID列表:%s;授权人列表:%v", authRecordErr.Error(), source, subSource, strings.Join(dataIdList, ","), userList))
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ // 获取所有在用的用户
|
|
|
|
+ cond := ` AND enabled = 1`
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+
|
|
|
|
+ adminList, authRecordErr := system.GetSysAdminList(cond, pars, []string{}, "")
|
|
|
|
+ if authRecordErr != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 如果没有授权人,那么就删除未授权记录
|
|
|
|
+ if len(userList) < 0 {
|
|
|
|
+ authRecordErr = data_manage_permission.DeleteRecordBySourceAndDataIdList(source, subSource, dataIdList)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ userIdMap := make(map[int]int)
|
|
|
|
+ for _, tmpUserId := range userIdMap {
|
|
|
|
+ userIdMap[tmpUserId] = tmpUserId
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ addUserIdList := make([]int, 0)
|
|
|
|
+ for _, v := range adminList {
|
|
|
|
+ if _, ok := userIdMap[v.AdminId]; !ok {
|
|
|
|
+ addUserIdList = append(addUserIdList, v.AdminId)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ authRecordErr = data_manage_permission.AddRecordBySourceAndDataIdList(source, subSource, dataIdList, dataList, addUserIdList, uniqueCode, content, opUserId)
|
|
|
|
+
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|