|
115 | 115 | import com.oceanbase.odc.service.connection.database.model.DBResource; |
116 | 116 | import com.oceanbase.odc.service.connection.database.model.Database; |
117 | 117 | import com.oceanbase.odc.service.connection.database.model.UnauthorizedDBResource; |
| 118 | +import com.oceanbase.odc.service.connection.logicaldatabase.LogicalDatabaseService; |
118 | 119 | import com.oceanbase.odc.service.connection.model.ConnectionConfig; |
119 | 120 | import com.oceanbase.odc.service.connection.model.OBTenant; |
120 | 121 | import com.oceanbase.odc.service.databasechange.model.DatabaseChangeDatabase; |
|
146 | 147 | import com.oceanbase.odc.service.flow.task.model.DBStructureComparisonParameter; |
147 | 148 | import com.oceanbase.odc.service.flow.task.model.DatabaseChangeParameters; |
148 | 149 | import com.oceanbase.odc.service.flow.task.model.FlowTaskProperties; |
| 150 | +import com.oceanbase.odc.service.flow.task.model.LogicalDatabaseChangeParameters; |
149 | 151 | import com.oceanbase.odc.service.flow.task.model.MultipleDatabaseChangeParameters; |
150 | 152 | import com.oceanbase.odc.service.flow.task.model.MultipleDatabaseChangeTaskResult; |
151 | 153 | import com.oceanbase.odc.service.flow.task.model.RuntimeTaskConstants; |
@@ -288,6 +290,8 @@ public class FlowInstanceService { |
288 | 290 | private ProjectService projectService; |
289 | 291 | @Autowired |
290 | 292 | private NamedParameterJdbcTemplate namedParameterJdbcTemplate; |
| 293 | + @Autowired |
| 294 | + private LogicalDatabaseService logicalDatabaseService; |
291 | 295 |
|
292 | 296 | private static final long MAX_EXPORT_OBJECT_COUNT = 10000; |
293 | 297 | private static final String ODC_SITE_URL = "odc.site.url"; |
@@ -974,6 +978,11 @@ private void checkCreateFlowInstancePermission(CreateFlowInstanceReq req) { |
974 | 978 | MultipleDatabaseChangeParameters parameters = (MultipleDatabaseChangeParameters) req.getParameters(); |
975 | 979 | databaseIds = |
976 | 980 | 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()); |
977 | 986 | } |
978 | 987 | permissionHelper.checkDBPermissions(databaseIds, DatabasePermissionType.from(req.getTaskType())); |
979 | 988 | } |
|
0 commit comments