# HG changeset patch # User Matthew Wild # Date 1701337620 0 # Node ID 1796370091d4c591f7d9f604693c7bd390289c8b # Parent 2b8ec22988afcae440415531612448399d80aef8 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. diff -r 2b8ec22988af -r 1796370091d4 core/usermanager.lua --- a/core/usermanager.lua Mon Nov 27 00:14:56 2023 +0100 +++ b/core/usermanager.lua Thu Nov 30 09:47:00 2023 +0000 @@ -163,12 +163,12 @@ 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 -r 2b8ec22988af -r 1796370091d4 plugins/mod_auth_internal_hashed.lua --- a/plugins/mod_auth_internal_hashed.lua Mon Nov 27 00:14:56 2023 +0100 +++ b/plugins/mod_auth_internal_hashed.lua Thu Nov 30 09:47:00 2023 +0000 @@ -126,9 +126,10 @@ 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