From 7bf7866d38589cc8b8649ddd5f9efc2e87ea47c6 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sat, 25 Oct 2025 23:58:51 +0200 Subject: [PATCH] bugfixes Signed-off-by: Stephan Richter --- .../main/java/de/srsoftware/umbrella/stock/StockModule.java | 6 ++++++ translations/src/main/resources/de.json | 2 +- translations/src/main/resources/en.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/stock/src/main/java/de/srsoftware/umbrella/stock/StockModule.java b/stock/src/main/java/de/srsoftware/umbrella/stock/StockModule.java index 99e13e7..9096f0e 100644 --- a/stock/src/main/java/de/srsoftware/umbrella/stock/StockModule.java +++ b/stock/src/main/java/de/srsoftware/umbrella/stock/StockModule.java @@ -1,6 +1,7 @@ /* © SRSoftware 2025 */ package de.srsoftware.umbrella.stock; +import static de.srsoftware.tools.Optionals.is0; import static de.srsoftware.tools.Optionals.nullIfEmpty; import static de.srsoftware.umbrella.core.ConnectionProvider.connect; import static de.srsoftware.umbrella.core.Constants.*; @@ -252,6 +253,11 @@ public class StockModule extends BaseHandler implements StockService { if (parentId.longValue() != 0L) { var target = stockDb.loadLocation(parentId.longValue()); if (target.id() == location.id()) throw forbidden("Location must not be it`s own parent!"); + var current = target; + while (current != null){ + if (current.id() == locationId) throw forbidden("Location cannot be contained in itself!"); + current = is0(current.parent()) ? null : stockDb.loadLocation(current.parent()); + } var targetOwner = target.owner().resolve(); if (!assigned(targetOwner, user)) throw forbidden("You are not allowed to edit \"{0}\"!", target.name()); if (!targetOwner.equals(owner)) throw unprocessable("You may not move locations from one owner ({0}) to another ({1})", owner, targetOwner); diff --git a/translations/src/main/resources/de.json b/translations/src/main/resources/de.json index 89aa252..f36deba 100644 --- a/translations/src/main/resources/de.json +++ b/translations/src/main/resources/de.json @@ -141,7 +141,7 @@ "logout_user": "{user} abmelden", "markdown_code": "Markdown-Code", - "markdown_supported": "Markdown & Plantuml nutzbar!", + "markdown_supported": "Markdown & Plantuml nutzbar!", "MANAGE_LOGIN_SERVICES": "Login-Services verwalten", "member": "Mitarbeiter", "members": "Mitarbeiter", diff --git a/translations/src/main/resources/en.json b/translations/src/main/resources/en.json index 3d8613d..34a8f4f 100644 --- a/translations/src/main/resources/en.json +++ b/translations/src/main/resources/en.json @@ -140,7 +140,7 @@ "logout_user": "logout {user}", "markdown_code": "Markdown-Code", - "markdown_supported": "Markdown & Plantuml supported!", + "markdown_supported": "Markdown & Plantuml supported!", "MANAGE_LOGIN_SERVICES": "manage login services", "member": "member", "members": "members",