Execute export tasks as system user

deploy_packages_to_gitea
Jens Pelzetter 2022-09-24 13:02:47 +02:00
parent a0ac634d1f
commit 6a9580f7a1
3 changed files with 19 additions and 16 deletions

View File

@ -1,12 +1,12 @@
{
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2022-09-20T182133",
"version": "7.0.0-SNAPSHOT.2022-09-24T104753",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2022-09-20T182133",
"version": "7.0.0-SNAPSHOT.2022-09-24T104753",
"license": "LGPL-3.0-or-later",
"dependencies": {
"@tiptap/core": "^2.0.0-beta.127",

View File

@ -1,6 +1,6 @@
{
"name": "@librecms/ccm-cms",
"version": "7.0.0-SNAPSHOT.2022-09-20T182133",
"version": "7.0.0-SNAPSHOT.2022-09-24T104753",
"description": "JavaScript stuff for ccm-cms",
"main": "target/generated-resources/assets/@content-sections/cms-admin.js",
"types": "target/generated-resources/assets/@content-sections/cms-admin.d.ts",

View File

@ -49,17 +49,10 @@ public class ImExportTasks {
* Listens for {@link org.libreccm.ui.admin.imexport.ExportTask}s.
*
* @param task The task to execute.
*
* @return The task.
*/
@Transactional(Transactional.TxType.REQUIRED)
public ExportTask exportEntities(@ObservesAsync final ExportTask task) {
final Collection<Exportable> entities = task.getEntities();
final String exportName = task.getName();
importExport.exportEntities(entities, exportName);
task.getStatus().setStatus(ImExportTaskStatus.FINISHED);
return task;
public void exportEntities(@ObservesAsync final ExportTask task) {
shiro.getSystemUser().execute(() -> executeExport(task));
}
/**
@ -69,11 +62,21 @@ public class ImExportTasks {
*/
@Transactional(Transactional.TxType.REQUIRED)
public void importEntitites(@ObservesAsync final ImportTask task) {
final String importName = task.getName();
shiro.getSystemUser().execute(() -> executeImport(task));
}
shiro.getSystemUser().execute(
() -> importExport.importEntities(importName)
);
private void executeExport(final ExportTask task) {
final Collection<Exportable> entities = task.getEntities();
final String exportName = task.getName();
importExport.exportEntities(entities, exportName);
task.getStatus().setStatus(ImExportTaskStatus.FINISHED);
}
private void executeImport(final ImportTask task) {
final String importName = task.getName();
importExport.importEntities(importName);
task.getStatus().setStatus(ImExportTaskStatus.FINISHED);
}
}