From 4edf08709010f721b099dfae3cab011acbdfb3ff Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 6 Dec 2017 17:32:49 +0100 Subject: Auth handler: Player deletion & Iterator (#6741) * Add player deletion method to auth handler (fixes #6653) * Support iterating over the auth database There was no way to do this previously and a recent commit broke doing this the "hacky" way by accessing `core.auth_table`. --- builtin/game/auth.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'builtin') diff --git a/builtin/game/auth.lua b/builtin/game/auth.lua index 80b15e818..3d4d6b199 100644 --- a/builtin/game/auth.lua +++ b/builtin/game/auth.lua @@ -106,6 +106,16 @@ core.builtin_auth_handler = { } save_auth_file() end, + delete_auth = function(name) + assert(type(name) == "string") + if not auth_table[name] then + return false + end + core.log('info', "Built-in authentication handler deleting player '"..name.."'") + auth_table[name] = nil + save_auth_file() + return true + end, set_password = function(name, password) assert(type(name) == "string") assert(type(password) == "string") @@ -154,6 +164,13 @@ core.builtin_auth_handler = { assert(auth_table[name]).last_login = os.time() save_auth_file() end, + iterate = function() + local names = {} + for k in pairs(auth_table) do + names[k] = true + end + return pairs(names) + end, } core.register_on_prejoinplayer(function(name, ip) @@ -204,6 +221,7 @@ end core.set_player_password = auth_pass("set_password") core.set_player_privs = auth_pass("set_privileges") +core.remove_player_auth = auth_pass("delete_auth") core.auth_reload = auth_pass("reload") local record_login = auth_pass("record_login") -- cgit v1.2.3