Skip to content

Commit 96a49bc

Browse files
authored
Merge pull request #573 from actiontech/feat-cb-execute-anyway
Feat cb execute anyway
2 parents f071234 + 50fefb3 commit 96a49bc

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

internal/dms/biz/cloudbeaver.go

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,8 @@ func (cu *CloudbeaverUsecase) GraphQLDistributor() echo.MiddlewareFunc {
619619
if !cloudbeaverHandle.NeedModifyRemoteRes {
620620
cloudbeaverNext = func(c echo.Context) ([]byte, error) {
621621
resp, ok = c.Get(cloudbeaver.AuditResultKey).(cloudbeaver.AuditResults)
622-
if ok && !resp.IsSuccess {
622+
isExecuteAnyway := cu.isExecuteAnyway(params) // 是否为“仍要执行”触发
623+
if ok && !resp.IsSuccess && !isExecuteAnyway {
623624
err = cu.SaveCbOpLog(c, dbService, params, resp.Results, resp.IsSuccess, nil)
624625
if err != nil {
625626
cu.log.Errorf("save cb operation log err: %v", err)
@@ -773,8 +774,8 @@ func convertToResp(ctx context.Context, resp cloudbeaver.AuditResults) interface
773774
}
774775
}
775776

776-
messageStr := strings.Join(messages, ",")
777-
executionFailedMessageStr := strings.Join(executionFailedMessage, ",")
777+
messageStr := "审核未通过:" + strings.Join(messages, "")
778+
executionFailedMessageStr := strings.Join(executionFailedMessage, "")
778779
name := "SQL Audit Failed"
779780

780781
return struct {
@@ -958,6 +959,29 @@ func (cu *CloudbeaverUsecase) isEnableWorkflowExec(dbService *DBService) bool {
958959
return dbService.SQLEConfig.AuditEnabled && dbService.SQLEConfig.SQLQueryConfig.WorkflowExecEnabled
959960
}
960961

962+
func (cu *CloudbeaverUsecase) isExecuteAnyway(params *graphql.RawParams) bool {
963+
if params == nil || params.Variables == nil {
964+
return false
965+
}
966+
967+
v, exist := params.Variables["isExecuteAnyway"]
968+
if !exist || v == nil {
969+
return false
970+
}
971+
972+
switch val := v.(type) {
973+
case bool:
974+
return val
975+
case string:
976+
b, err := strconv.ParseBool(val)
977+
if err == nil {
978+
return b
979+
}
980+
}
981+
982+
return false
983+
}
984+
961985
func (cu *CloudbeaverUsecase) getDbService(ctx context.Context, params *graphql.RawParams) (*DBService, error) {
962986
var connectionId interface{}
963987
var connectionIdStr string

0 commit comments

Comments
 (0)