FINERACT-1978: Delete data table does not delete references
This commit is contained in:
-3
@@ -185,11 +185,8 @@ public class DatatablesApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = DatatablesApiResourceSwagger.PutDataTablesResponse.class))) })
|
||||
public String deregisterDatatable(@PathParam("datatable") @Parameter(description = "datatable") final String datatable) {
|
||||
|
||||
this.readWriteNonCoreDataService.deregisterDatatable(datatable);
|
||||
|
||||
final CommandProcessingResult result = new CommandProcessingResultBuilder().withResourceIdAsString(datatable).build();
|
||||
|
||||
return this.toApiJsonSerializer.serialize(result);
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -40,11 +40,8 @@ public class DeleteDatatableCommandHandler implements NewCommandSourceHandler {
|
||||
@Transactional
|
||||
@Override
|
||||
public CommandProcessingResult processCommand(final JsonCommand command) {
|
||||
|
||||
final String datatableName = command.getUrl().replaceAll("/datatables/", "");
|
||||
|
||||
this.writePlatformService.deleteDatatable(datatableName);
|
||||
|
||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withResourceIdAsString(datatableName).build();
|
||||
}
|
||||
}
|
||||
|
||||
+6
-10
@@ -459,20 +459,16 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
@Transactional
|
||||
@Override
|
||||
public void deregisterDatatable(final String datatable) {
|
||||
String validatedDatatable = this.preventSqlInjectionService.encodeSql(datatable);
|
||||
final String permissionList = "('CREATE_" + validatedDatatable + "', 'CREATE_" + validatedDatatable + "_CHECKER', 'READ_"
|
||||
+ validatedDatatable + "', 'UPDATE_" + validatedDatatable + "', 'UPDATE_" + validatedDatatable + "_CHECKER', 'DELETE_"
|
||||
+ validatedDatatable + "', 'DELETE_" + validatedDatatable + "_CHECKER')";
|
||||
validateDatatableRegistered(datatable);
|
||||
final String permissionList = "('CREATE_" + datatable + "', 'CREATE_" + datatable + "_CHECKER', 'READ_" + datatable + "', 'UPDATE_"
|
||||
+ datatable + "', 'UPDATE_" + datatable + "_CHECKER', 'DELETE_" + datatable + "', 'DELETE_" + datatable + "_CHECKER')";
|
||||
|
||||
final String deleteRolePermissionsSql = "delete from m_role_permission where m_role_permission.permission_id in (select id from m_permission where code in "
|
||||
+ permissionList + ")";
|
||||
|
||||
final String deletePermissionsSql = "delete from m_permission where code in " + permissionList;
|
||||
|
||||
final String deleteRegisteredDatatableSql = "delete from x_registered_table where registered_table_name = '" + validatedDatatable
|
||||
+ "'";
|
||||
|
||||
final String deleteFromConfigurationSql = "delete from c_configuration where name ='" + validatedDatatable + "'";
|
||||
final String deleteRegisteredDatatableSql = "delete from x_registered_table where registered_table_name = '" + datatable + "'";
|
||||
final String deleteFromConfigurationSql = "delete from c_configuration where name ='" + datatable + "'";
|
||||
|
||||
String[] sqlArray = new String[4];
|
||||
sqlArray[0] = deleteRolePermissionsSql;
|
||||
@@ -1250,7 +1246,7 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
||||
public void deleteDatatable(final String datatableName) {
|
||||
try {
|
||||
this.context.authenticatedUser();
|
||||
validateDatatableRegistered(datatableName);
|
||||
validateDatatableName(datatableName);
|
||||
assertDataTableEmpty(datatableName);
|
||||
deregisterDatatable(datatableName);
|
||||
String[] sqlArray;
|
||||
|
||||
Reference in New Issue
Block a user