From b84a139d12296069af00bfd696590954f1fd10ee Mon Sep 17 00:00:00 2001 From: Francesco Date: Fri, 6 Oct 2023 15:14:41 +0200 Subject: [PATCH] `@DisableEdit` --- .../external/controller/DefaultDbAdminController.java | 8 +++++++- src/main/resources/templates/fragments/data_row.html | 4 +++- src/main/resources/templates/model/list.html | 2 +- src/main/resources/templates/model/schema.html | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java b/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java index 2ca7dde..ce85125 100644 --- a/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java +++ b/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java @@ -284,9 +284,15 @@ public class DefaultDbAdminController { } @GetMapping("/model/{className}/edit/{id}") - public String edit(Model model, @PathVariable String className, @PathVariable String id) { + public String edit(Model model, @PathVariable String className, @PathVariable String id, RedirectAttributes attr) { DbObjectSchema schema = dbAdmin.findSchemaByClassName(className); + if (!schema.isEditEnabled()) { + attr.addFlashAttribute("errorTitle", "Unauthorized"); + attr.addFlashAttribute("error", "EDIT operations have been disabled on this type (" + schema.getJavaClass().getSimpleName() + ")."); + return "redirect:/" + properties.getBaseUrl() + "/model/" + className; + } + DbObject object = repository.findById(schema, id).orElseThrow(() -> { return new ResponseStatusException( HttpStatus.NOT_FOUND, "Object " + className + " with id " + id + " not found" diff --git a/src/main/resources/templates/fragments/data_row.html b/src/main/resources/templates/fragments/data_row.html index beac689..e934b25 100644 --- a/src/main/resources/templates/fragments/data_row.html +++ b/src/main/resources/templates/fragments/data_row.html @@ -9,7 +9,9 @@ th:classAppend="|${!schema.isDeleteEnabled() ? 'disable' : ''}|"> - +
diff --git a/src/main/resources/templates/model/list.html b/src/main/resources/templates/model/list.html index 7a82801..d8044b5 100644 --- a/src/main/resources/templates/model/list.html +++ b/src/main/resources/templates/model/list.html @@ -61,7 +61,7 @@ -

+

diff --git a/src/main/resources/templates/model/schema.html b/src/main/resources/templates/model/schema.html index 625b406..65ddb07 100644 --- a/src/main/resources/templates/model/schema.html +++ b/src/main/resources/templates/model/schema.html @@ -39,7 +39,7 @@ [[ ${schema.getTableName()} ]]

-