Do not grant all privs to the admin - changes game behavior (#6460)
authorlhofhansl <lhofhansl@yahoo.com>
Sat, 7 Oct 2017 13:12:09 +0000 (06:12 -0700)
committerLoïc Blot <nerzhul@users.noreply.github.com>
Sat, 7 Oct 2017 13:12:09 +0000 (15:12 +0200)
* Do not grant all privs to admins.

* Default give_to_admin to give_to_singleplayer

builtin/game/auth.lua
builtin/game/privileges.lua

index 4d5178ba7a95ff260c74f2d9cc9d81e65da5535f..bf5bd19a8b7cb9d497df32ed6f83ed5cbb8a208b 100644 (file)
@@ -83,7 +83,9 @@ core.builtin_auth_handler = {
                -- For the admin, give everything
                elseif name == core.settings:get("name") then
                        for priv, def in pairs(core.registered_privileges) do
-                               privileges[priv] = true
+                               if def.give_to_admin then
+                                       privileges[priv] = true
+                               end
                        end
                end
                -- All done
index e9b2df54cc556d52860a816db8f158135ffe0e68..325340fd2bec2d7881d17cf00c442895d98559e4 100644 (file)
@@ -11,6 +11,9 @@ function core.register_privilege(name, param)
                if def.give_to_singleplayer == nil then
                        def.give_to_singleplayer = true
                end
+               if def.give_to_admin == nil then
+                       def.give_to_admin = def.give_to_singleplayer
+               end
                if def.description == nil then
                        def.description = "(no description)"
                end
@@ -45,6 +48,7 @@ core.register_privilege("settime", {
 core.register_privilege("server", {
        description = "Can do server maintenance stuff",
        give_to_singleplayer = false,
+       give_to_admin = true,
 })
 core.register_privilege("protection_bypass", {
        description = "Can bypass node protection in the world",
@@ -53,10 +57,12 @@ core.register_privilege("protection_bypass", {
 core.register_privilege("ban", {
        description = "Can ban and unban players",
        give_to_singleplayer = false,
+       give_to_admin = true,
 })
 core.register_privilege("kick", {
        description = "Can kick players",
        give_to_singleplayer = false,
+       give_to_admin = true,
 })
 core.register_privilege("give", {
        description = "Can use /give and /giveme",
@@ -65,6 +71,7 @@ core.register_privilege("give", {
 core.register_privilege("password", {
        description = "Can use /setpassword and /clearpassword",
        give_to_singleplayer = false,
+       give_to_admin = true,
 })
 core.register_privilege("fly", {
        description = "Can fly using the free_move mode",
@@ -85,6 +92,7 @@ core.register_privilege("rollback", {
 core.register_privilege("debug", {
        description = "Allows enabling various debug options that may affect gameplay",
        give_to_singleplayer = false,
+       give_to_admin = true,
 })
 
 core.register_can_bypass_userlimit(function(name, ip)