File

mod_audit_user_accounts/mod_audit_user_accounts.lua @ 5841:d3b69859553a

mod_password_policy: Change error type from 'cancel' to 'modify' This makes more sense, as the problem relates to the data that has been entered, and therefore the request could be retried with different data.
author Matthew Wild <mwild1@gmail.com>
date Mon, 08 Jan 2024 17:28:39 +0000
parent 5768:628952e4ff47
line wrap: on
line source

module:depends("audit");
-- luacheck: read globals module.audit

local dt = require "util.datetime";
local jid = require "util.jid";
local st = require "util.stanza";

local function audit_basic_event(name, custom_handler)
	module:hook(name, function (event)
		local custom;
		if custom_handler then
			custom = custom_handler(event);
		end
		module:audit(jid.join(event.username, module.host), name, {
			session = event.session;
			custom = custom;
		});
	end);
end

audit_basic_event("user-registered", function (event)
	local invite = event.validated_invite or (event.session and event.session.validated_invite);
	if not invite then return; end
	return {
		st.stanza(
			"invite-used",
			{
				xmlns = "xmpp:prosody.im/audit",
				token = invite.token,
			}
		);
	};
end);

audit_basic_event("user-deregistered-pending");
audit_basic_event("user-deregistered");

audit_basic_event("user-enabled");
audit_basic_event("user-disabled", function (event)
	local meta = event.meta;
	if not meta then return end

	local meta_st = st.stanza("disabled", {
		xmlns = "xmpp:prosody.im/audit";
		reason = meta.reason;
		when = meta.when and dt.datetime(meta.when) or nil;
	});
	if meta.comment then
		meta_st:text_tag("comment", meta.comment);
	end

	return { meta_st };
end);