Skip to content
Snippets Groups Projects
Commit e9e6125c authored by Peter Nerlich's avatar Peter Nerlich
Browse files

add atlatc_sync and atlatc_sync_seturl privileges

parent d8a44b4a
No related branches found
No related tags found
No related merge requests found
Pipeline #47681 passed
diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
--- advtrains/advtrains_luaautomation/chatcmds.lua 2021-10-22 23:53:01.048355212 +0200 --- advtrains/advtrains_luaautomation/chatcmds.lua 2021-10-22 23:53:01.048355212 +0200
+++ patched/chatcmds.lua 2021-10-23 00:09:17.355062968 +0200 +++ patched/chatcmds.lua 2021-10-23 17:04:56.534525594 +0200
@@ -1,6 +1,13 @@ @@ -1,6 +1,13 @@
--chatcmds.lua --chatcmds.lua
--Registers commands to modify the init and step code for LuaAutomation --Registers commands to modify the init and step code for LuaAutomation
...@@ -38,7 +38,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua ...@@ -38,7 +38,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
+ .."field[.5,.6;11.5,1;sync_url;URL;"..url.."]" + .."field[.5,.6;11.5,1;sync_url;URL;"..url.."]"
+ .."label[.5,1.2;"..minetest.formspec_escape("Be careful! This replaces the current init code for env "..env.name.." with the contents at the URL!").."]" + .."label[.5,1.2;"..minetest.formspec_escape("Be careful! This replaces the current init code for env "..env.name.." with the contents at the URL!").."]"
+ .."button[8.5,2;2.5,1;urlsave;Save URL only]" + .."button[8.5,2;2.5,1;urlsave;Save URL only]"
+ .."label[4,0;"..msg.."]" + .."label[2.5,0;"..msg.."]"
+ if http then + if http then
+ form = form.."button[1,2;3,1;replace;Replace init code] button[4.5,2;3.5,1;replacerun;Replace and Run init code]" + form = form.."button[1,2;3,1;replace;Replace init code] button[4.5,2;3.5,1;replacerun;Replace and Run init code]"
+ else + else
...@@ -47,7 +47,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua ...@@ -47,7 +47,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
return form return form
end end
@@ -119,6 +151,44 @@ @@ -119,6 +151,53 @@
return return
end end
...@@ -58,8 +58,13 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua ...@@ -58,8 +58,13 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
+ +
+ if fields.replace or fields.replacerun or fields.urlsave then + if fields.replace or fields.replacerun or fields.urlsave then
+ if fields.sync_url ~= env.sync_url then + if fields.sync_url ~= env.sync_url then
+ if minetest.check_player_privs(pname, {atlatc_sync_seturl=true}) then
+ env.sync_url = fields.sync_url + env.sync_url = fields.sync_url
+ env.sync_err = nil + env.sync_err = nil
+ else
+ minetest.show_formspec(pname, formname, get_sync_form(env, pname, "You don't have the privilege to set the URL for the init code. (atlatc_sync_seturl)"))
+ return
+ end
+ end + end
+ end + end
+ if env.syncing then return end + if env.syncing then return end
...@@ -81,9 +86,13 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua ...@@ -81,9 +86,13 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
+ end + end
+ +
+ if fields.replace or fields.replacerun then + if fields.replace or fields.replacerun then
+ if minetest.check_player_privs(pname, {atlatc_sync=true}) then
+ env.syncing = true + env.syncing = true
+ env:sync_initcode(cb) + env:sync_initcode(cb)
+ else + else
+ minetest.show_formspec(pname, formname, get_sync_form(env, pname, "You don't have the privilege to sync the init code. (atlatc_sync)"))
+ end
+ else
+ cb() + cb()
+ end + end
+ return + return
...@@ -92,7 +101,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua ...@@ -92,7 +101,7 @@ diff -ruN advtrains/advtrains_luaautomation/chatcmds.lua patched/chatcmds.lua
envname=string.match(formname, "^atlatc_envsetup_(.+)$") envname=string.match(formname, "^atlatc_envsetup_(.+)$")
if not envname then return end if not envname then return end
@@ -138,4 +208,7 @@ @@ -138,4 +217,7 @@
env:run_initcode() env:run_initcode()
minetest.show_formspec(pname, formname, get_init_form(env, pname)) minetest.show_formspec(pname, formname, get_init_form(env, pname))
end end
...@@ -179,8 +188,8 @@ diff -ruN advtrains/advtrains_luaautomation/environment.lua patched/environment. ...@@ -179,8 +188,8 @@ diff -ruN advtrains/advtrains_luaautomation/environment.lua patched/environment.
diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua
--- advtrains/advtrains_luaautomation/init.lua 2021-10-22 23:53:01.048355212 +0200 --- advtrains/advtrains_luaautomation/init.lua 2021-10-22 23:53:01.048355212 +0200
+++ patched/init.lua 2021-10-22 23:54:24.418074075 +0200 +++ patched/init.lua 2021-10-23 15:16:26.752563986 +0200
@@ -8,7 +8,7 @@ @@ -8,9 +8,11 @@
--Privilege --Privilege
--Only trusted players should be enabled to build stuff which can break the server. --Only trusted players should be enabled to build stuff which can break the server.
...@@ -188,8 +197,12 @@ diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua ...@@ -188,8 +197,12 @@ diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua
+atlatc = { envs = {}, setup_http = {} } +atlatc = { envs = {}, setup_http = {} }
minetest.register_privilege("atlatc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false }) minetest.register_privilege("atlatc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false })
+minetest.register_privilege("atlatc_sync", { description = "Player can overwrite init code of LUA ATC environments with content at a remote URL. GRANT WITH MUCH CARE! Allows to easily introduce and execute bad LUA code if able to influence the code the set URL is pointing to.", give_to_singleplayer = false, default= false })
+minetest.register_privilege("atlatc_sync_seturl", { description = "Player can set the sync URL of LUA ATC environments. GRANT WITH EXTREME CARE! Allows to immediately introduce and execute any bad LUA code. Best leave this to admins.", give_to_singleplayer = false, default= false })
@@ -22,9 +22,9 @@ --Size of code input forms in X,Y notation. Must be at least 10x10
atlatc.CODE_FORM_SIZE = "15,12"
@@ -22,9 +24,9 @@
end end
end end
...@@ -201,7 +214,7 @@ diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua ...@@ -201,7 +214,7 @@ diff -ruN advtrains/advtrains_luaautomation/init.lua patched/init.lua
end end
dofile(mp.."/environment.lua") dofile(mp.."/environment.lua")
dofile(mp.."/interrupt.lua") dofile(mp.."/interrupt.lua")
@@ -98,6 +98,17 @@ @@ -98,6 +100,17 @@
return save_tbl return save_tbl
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment