@@ -1,6 +1,7 @@
|
|||||||
/* © SRSoftware 2025 */
|
/* © SRSoftware 2025 */
|
||||||
package de.srsoftware.umbrella.stock;
|
package de.srsoftware.umbrella.stock;
|
||||||
|
|
||||||
|
import static de.srsoftware.tools.Optionals.is0;
|
||||||
import static de.srsoftware.tools.Optionals.nullIfEmpty;
|
import static de.srsoftware.tools.Optionals.nullIfEmpty;
|
||||||
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
|
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
|
||||||
import static de.srsoftware.umbrella.core.Constants.*;
|
import static de.srsoftware.umbrella.core.Constants.*;
|
||||||
@@ -252,6 +253,11 @@ public class StockModule extends BaseHandler implements StockService {
|
|||||||
if (parentId.longValue() != 0L) {
|
if (parentId.longValue() != 0L) {
|
||||||
var target = stockDb.loadLocation(parentId.longValue());
|
var target = stockDb.loadLocation(parentId.longValue());
|
||||||
if (target.id() == location.id()) throw forbidden("Location must not be it`s own parent!");
|
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();
|
var targetOwner = target.owner().resolve();
|
||||||
if (!assigned(targetOwner, user)) throw forbidden("You are not allowed to edit \"{0}\"!", target.name());
|
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);
|
if (!targetOwner.equals(owner)) throw unprocessable("You may not move locations from one owner ({0}) to another ({1})", owner, targetOwner);
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
"logout_user": "{user} abmelden",
|
"logout_user": "{user} abmelden",
|
||||||
|
|
||||||
"markdown_code": "Markdown-Code",
|
"markdown_code": "Markdown-Code",
|
||||||
"markdown_supported": "Markdown & <a href=\"https://plantuml.com\">Plantuml</a> nutzbar!",
|
"markdown_supported": "Markdown & <a target=\"_blank\" href=\"https://plantuml.com\">Plantuml</a> nutzbar!",
|
||||||
"MANAGE_LOGIN_SERVICES": "Login-Services verwalten",
|
"MANAGE_LOGIN_SERVICES": "Login-Services verwalten",
|
||||||
"member": "Mitarbeiter",
|
"member": "Mitarbeiter",
|
||||||
"members": "Mitarbeiter",
|
"members": "Mitarbeiter",
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
"logout_user": "logout {user}",
|
"logout_user": "logout {user}",
|
||||||
|
|
||||||
"markdown_code": "Markdown-Code",
|
"markdown_code": "Markdown-Code",
|
||||||
"markdown_supported": "Markdown & <a href=\"https://plantuml.com\">Plantuml</a> supported!",
|
"markdown_supported": "Markdown & <a target=\"_blank\" href=\"https://plantuml.com\">Plantuml</a> supported!",
|
||||||
"MANAGE_LOGIN_SERVICES": "manage login services",
|
"MANAGE_LOGIN_SERVICES": "manage login services",
|
||||||
"member": "member",
|
"member": "member",
|
||||||
"members": "members",
|
"members": "members",
|
||||||
|
|||||||
Reference in New Issue
Block a user