Skip to content

Commit 706e46b

Browse files
committed
add database permission check
1 parent 34d4356 commit 706e46b

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

server/odc-service/src/main/java/com/oceanbase/odc/service/flow/FlowInstanceService.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
import com.oceanbase.odc.service.connection.database.model.DBResource;
116116
import com.oceanbase.odc.service.connection.database.model.Database;
117117
import com.oceanbase.odc.service.connection.database.model.UnauthorizedDBResource;
118+
import com.oceanbase.odc.service.connection.logicaldatabase.LogicalDatabaseService;
118119
import com.oceanbase.odc.service.connection.model.ConnectionConfig;
119120
import com.oceanbase.odc.service.connection.model.OBTenant;
120121
import com.oceanbase.odc.service.databasechange.model.DatabaseChangeDatabase;
@@ -146,6 +147,7 @@
146147
import com.oceanbase.odc.service.flow.task.model.DBStructureComparisonParameter;
147148
import com.oceanbase.odc.service.flow.task.model.DatabaseChangeParameters;
148149
import com.oceanbase.odc.service.flow.task.model.FlowTaskProperties;
150+
import com.oceanbase.odc.service.flow.task.model.LogicalDatabaseChangeParameters;
149151
import com.oceanbase.odc.service.flow.task.model.MultipleDatabaseChangeParameters;
150152
import com.oceanbase.odc.service.flow.task.model.MultipleDatabaseChangeTaskResult;
151153
import com.oceanbase.odc.service.flow.task.model.RuntimeTaskConstants;
@@ -288,6 +290,8 @@ public class FlowInstanceService {
288290
private ProjectService projectService;
289291
@Autowired
290292
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
293+
@Autowired
294+
private LogicalDatabaseService logicalDatabaseService;
291295

292296
private static final long MAX_EXPORT_OBJECT_COUNT = 10000;
293297
private static final String ODC_SITE_URL = "odc.site.url";
@@ -974,6 +978,11 @@ private void checkCreateFlowInstancePermission(CreateFlowInstanceReq req) {
974978
MultipleDatabaseChangeParameters parameters = (MultipleDatabaseChangeParameters) req.getParameters();
975979
databaseIds =
976980
parameters.getOrderedDatabaseIds().stream().flatMap(Collection::stream).collect(Collectors.toSet());
981+
} else if (taskType == TaskType.LOGICAL_DATABASE_CHANGE) {
982+
LogicalDatabaseChangeParameters parameters = (LogicalDatabaseChangeParameters) req.getParameters();
983+
databaseIds =
984+
logicalDatabaseService.listPhysicalDatabases(parameters.getDatabaseId())
985+
.stream().map(Database::getId).collect(Collectors.toSet());
977986
}
978987
permissionHelper.checkDBPermissions(databaseIds, DatabasePermissionType.from(req.getTaskType()));
979988
}

0 commit comments

Comments
 (0)