Skip to content

Commit 9dd221c

Browse files
Merge pull request #3078 from actiontech/fix_save_audit_plan
fix: permission for save audit plan
2 parents 1a4de3d + 8b6f720 commit 9dd221c

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

sqle/api/controller/v1/instance_audit_plan.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ func GetInstanceAuditPlanOverview(c echo.Context) error {
650650
return controller.JSONBaseErrorReq(c, err)
651651
}
652652
// check current user instance audit plan permission
653-
detail, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
653+
detail, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
654654
if err != nil {
655655
return controller.JSONBaseErrorReq(c, err)
656656
}
@@ -901,7 +901,7 @@ func GetInstanceAuditPlanSQLs(c echo.Context) error {
901901
return controller.JSONBaseErrorReq(c, err)
902902
}
903903
// check current user instance audit plan permission
904-
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
904+
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
905905
if err != nil {
906906
return controller.JSONBaseErrorReq(c, err)
907907
}
@@ -1000,7 +1000,7 @@ func GetInstanceAuditPlanSQLMeta(c echo.Context) error {
10001000
return controller.JSONBaseErrorReq(c, err)
10011001
}
10021002
// check current user instance audit plan permission
1003-
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
1003+
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
10041004
if err != nil {
10051005
return controller.JSONBaseErrorReq(c, err)
10061006
}
@@ -1100,7 +1100,7 @@ func GetInstanceAuditPlanSQLData(c echo.Context) error {
11001100
return controller.JSONBaseErrorReq(c, err)
11011101
}
11021102
// check current user instance audit plan permission
1103-
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
1103+
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
11041104
if err != nil {
11051105
return controller.JSONBaseErrorReq(c, err)
11061106
}
@@ -1166,7 +1166,7 @@ func GetInstanceAuditPlanSQLExport(c echo.Context) error {
11661166
return controller.JSONBaseErrorReq(c, err)
11671167
}
11681168
// check current user instance audit plan permission
1169-
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
1169+
_, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
11701170
if err != nil {
11711171
return controller.JSONBaseErrorReq(c, err)
11721172
}
@@ -1262,7 +1262,7 @@ func GetAuditPlanSqlAnalysisData(c echo.Context) error {
12621262
if err != nil {
12631263
return controller.JSONBaseErrorReq(c, err)
12641264
}
1265-
detail, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, insAuditPlanID, v1.OpPermissionTypeViewOtherAuditPlan)
1265+
detail, exist, err := GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, insAuditPlanID)
12661266
if err != nil {
12671267
return controller.JSONBaseErrorReq(c, err)
12681268
}

sqle/api/controller/v1/project_permission.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ func GetAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, auditPlanName str
299299
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
300300
}
301301

302-
func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanceAuditPlanID string, opType dmsV1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {
302+
func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanceAuditPlanID string) (*model.InstanceAuditPlan, bool, error) {
303303
storage := model.GetStorage()
304304

305305
ap, exist, err := storage.GetInstanceAuditPlanDetail(instanceAuditPlanID)
@@ -329,8 +329,8 @@ func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanc
329329
return ap, true, nil
330330
}
331331
}
332-
333-
if opType != "" {
332+
opTypes := []dmsV1.OpPermissionType{dmsV1.OpPermissionTypeViewOtherAuditPlan, dmsV1.OpPermissionTypeSaveAuditPlan}
333+
for _, opType := range opTypes {
334334
dbServiceReq := &dmsV2.ListDBServiceReq{
335335
ProjectUid: projectId,
336336
}
@@ -344,7 +344,7 @@ func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanc
344344
}
345345
}
346346
}
347-
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
347+
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(dmsV1.OpPermissionTypeViewOtherAuditPlan))
348348
}
349349

350350
func GetInstanceAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, instanceAuditPlanID string, opType dmsV1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {

sqle/api/controller/v2/instance_audit_plan.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ func GetInstanceAuditPlans(c echo.Context) error {
248248
"offset": offset,
249249
}
250250
if !up.CanViewProject() {
251-
accessibleInstanceId := up.GetInstancesByOP(dmsCommonV1.OpPermissionTypeViewOtherAuditPlan)
251+
// 如果有配置SQL管控权限,那么可以查看自己创建的或者该权限对应数据源的
252+
accessibleInstanceId := up.GetInstancesByOP(dmsCommonV1.OpPermissionTypeViewOtherAuditPlan, dmsCommonV1.OpPermissionTypeSaveAuditPlan)
252253
if len(accessibleInstanceId) > 0 {
253254
data["accessible_instances_id"] = fmt.Sprintf("\"%s\"", strings.Join(accessibleInstanceId, "\",\""))
254255
}
@@ -381,7 +382,7 @@ func GetInstanceAuditPlanDetail(c echo.Context) error {
381382
return controller.JSONBaseErrorReq(c, err)
382383
}
383384
// check current user instance audit plan permission
384-
detail, exist, err := v1.GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID, dmsCommonV1.OpPermissionTypeViewOtherAuditPlan)
385+
detail, exist, err := v1.GetInstanceAuditPlanIfCurrentUserCanView(c, projectUID, instanceAuditPlanID)
385386
if err != nil {
386387
return controller.JSONBaseErrorReq(c, err)
387388
}

0 commit comments

Comments
 (0)