From 4a9ad94bf9560770c0efded0c8558c4747dc887f Mon Sep 17 00:00:00 2001
From: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date: Sun, 26 Apr 2020 11:32:42 +0200
Subject: [PATCH] Fix chest formspec protection (#540)

---
 technic_chests/register.lua |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/technic_chests/register.lua b/technic_chests/register.lua
index 0d5150e..9f63617 100644
--- a/technic_chests/register.lua
+++ b/technic_chests/register.lua
@@ -159,6 +159,16 @@
 	return function(pos, formname, fields, sender)
 		local meta = minetest.get_meta(pos)
 		local page = "main"
+
+		local owner = meta:get_string("owner")
+		if owner ~= "" then
+			-- prevent modification of locked chests
+			if owner ~= sender:get_player_name() then return end
+		elseif not fields.quit then
+			-- prevent modification of protected chests
+			if minetest.is_protected(pos, sender:get_player_name()) then return end
+		end
+
 		if fields.sort or (data.autosort and fields.quit and meta:get_int("autosort") == 1) then
 			sort_inventory(meta:get_inventory())
 		end

--
Gitblit v1.8.0