@@ -12,6 +12,7 @@ import (
1212 "net/http"
1313 "os"
1414 "path/filepath"
15+ "strconv"
1516 "strings"
1617 "time"
1718
@@ -682,20 +683,33 @@ func GetSQLAuditRecordsV1(c echo.Context) error {
682683 }
683684
684685 limit , offset := controller .GetLimitAndOffset (req .PageIndex , req .PageSize )
685- hasPermission , err := hasViewPermission (user .GetIDStr (), projectUid , v1 .OpPermissionViewQuickAuditRecord )
686-
686+ up , err := dms .NewUserPermission (user .GetIDStr (), projectUid )
687+ if err != nil {
688+ return controller .JSONBaseErrorReq (c , fmt .Errorf ("check project manager failed: %v" , err ))
689+ }
690+ canViewProject := up .CanViewProject ()
691+ viewQuickAuditRecordPermission := up .GetOnePermission (v1 .OpPermissionViewQuickAuditRecord )
687692 data := map [string ]interface {}{
688693 "filter_project_id" : projectUid ,
689694 "filter_creator_id" : user .ID ,
690695 "fuzzy_search_tags" : req .FuzzySearchTags ,
691- "filter_instance_id" : req .FilterInstanceId ,
696+ "filter_instance_ids" : req .FilterInstanceId ,
692697 "filter_create_time_from" : req .FilterCreateTimeFrom ,
693698 "filter_create_time_to" : req .FilterCreateTimeTo ,
694- "check_user_can_access" : ! hasPermission ,
699+ "check_user_can_access" : ! canViewProject ,
695700 "filter_audit_record_ids" : req .FilterSqlAuditRecordIDs ,
696701 "limit" : limit ,
697702 "offset" : offset ,
698703 }
704+ if ! canViewProject && viewQuickAuditRecordPermission != nil {
705+ rangeUids := viewQuickAuditRecordPermission .RangeUids
706+ if req .FilterInstanceId != 0 {
707+ rangeUids = utils .FindIntersection (rangeUids , []string {strconv .FormatUint (req .FilterInstanceId , 10 )})
708+ }
709+ data ["filter_instance_ids" ] = fmt .Sprintf ("\" %s\" " , strings .Join (rangeUids , "\" ,\" " ))
710+ data ["check_user_can_access" ] = false
711+ }
712+
699713 if req .FilterSQLAuditStatus == SQLAuditRecordStatusAuditing {
700714 data ["filter_task_status_exclude" ] = model .TaskStatusAudited
701715 } else if req .FilterSQLAuditStatus == SQLAuditRecordStatusSuccessfully {
0 commit comments