From 253b2fba90c19cc6758b8d63f409587df688a36e Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Thu, 30 Nov 2023 09:47:00 +0000 Subject: usermanager, mod_auth_internal_hashed: Support metadata when disabling a user This allows us to store a time, actor, comment and/or reason why an account was disabled, which seems a generally useful thing to support. --- core/usermanager.lua | 6 +++--- plugins/mod_auth_internal_hashed.lua | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/usermanager.lua b/core/usermanager.lua index 37fd38a9..793e7af6 100644 --- a/core/usermanager.lua +++ b/core/usermanager.lua @@ -163,12 +163,12 @@ local function enable_user(username, host) return ret, err; end -local function disable_user(username, host) +local function disable_user(username, host, meta) local method = hosts[host].users.disable; if not method then return nil, "method not supported"; end - local ret, err = method(username); + local ret, err = method(username, meta); if ret then - prosody.events.fire_event("user-disabled", { username = username, host = host }); + prosody.events.fire_event("user-disabled", { username = username, host = host, meta = meta }); end return ret, err; end diff --git a/plugins/mod_auth_internal_hashed.lua b/plugins/mod_auth_internal_hashed.lua index 32371618..4840f431 100644 --- a/plugins/mod_auth_internal_hashed.lua +++ b/plugins/mod_auth_internal_hashed.lua @@ -126,9 +126,10 @@ function provider.enable(username) return accounts:set(username, account); end -function provider.disable(username) +function provider.disable(username, meta) local account = accounts:get(username); account.disabled = true; + account.disabled_meta = meta; account.updated = os.time(); return accounts:set(username, account); end -- cgit v1.2.3