Mercurial > prosody-modules
annotate mod_audit_user_accounts/mod_audit_user_accounts.lua @ 6319:04c3273cb81f
mod_auth_cyrus: Add empty 'profile' table to SASL handler objects
This is for compatibility with Prosody's built-in util.sasl objects.
A SASL profile table usually includes methods supported by the backend, which
can be used by SASL mechanism handlers to perform operations (such as testing
the password). It also optionally contains a 'cb' field with channel binding
method handlers.
The Cyrus backend doesn't support channel binding, and doesn't have the same
concept of auth backend methods (it handles all that internally, and Prosody
has no insight or control over it).
Thus, we create an empty profile which informs Prosody that the SASL handler
does not support any of the auth or channel binding methods. Some features
will not work, but they didn't work anyway. This just makes it explicit.
This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to
always contain a 'profile' field.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 04 Sep 2025 10:14:46 +0100 |
| parents | 628952e4ff47 |
| children |
| rev | line source |
|---|---|
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
1 module:depends("audit"); |
|
4933
08dea42a302a
mod_audit*: fix luacheck warnings
Jonas Schäfer <jonas@wielicki.name>
parents:
4932
diff
changeset
|
2 -- luacheck: read globals module.audit |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
3 |
|
5744
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
4 local dt = require "util.datetime"; |
|
5713
dde83f6043e6
mod_audit_register: Include hostpart with audit events here too
Kim Alvefur <zash@zash.se>
parents:
4933
diff
changeset
|
5 local jid = require "util.jid"; |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
6 local st = require "util.stanza"; |
|
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
7 |
|
5744
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
8 local function audit_basic_event(name, custom_handler) |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
9 module:hook(name, function (event) |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
10 local custom; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
11 if custom_handler then |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
12 custom = custom_handler(event); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
13 end |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
14 module:audit(jid.join(event.username, module.host), name, { |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
15 session = event.session; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
16 custom = custom; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
17 }); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
18 end); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
19 end |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
20 |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
21 audit_basic_event("user-registered", function (event) |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
22 local invite = event.validated_invite or (event.session and event.session.validated_invite); |
|
5744
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
23 if not invite then return; end |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
24 return { |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
25 st.stanza( |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
26 "invite-used", |
|
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
27 { |
|
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
28 xmlns = "xmpp:prosody.im/audit", |
|
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
29 token = invite.token, |
|
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
30 } |
|
5744
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
31 ); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
32 }; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
33 end); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
34 |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
35 audit_basic_event("user-deregistered-pending"); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
36 audit_basic_event("user-deregistered"); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
37 |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
38 audit_basic_event("user-enabled"); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
39 audit_basic_event("user-disabled", function (event) |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
40 local meta = event.meta; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
41 if not meta then return end |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
42 |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
43 local meta_st = st.stanza("disabled", { |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
44 xmlns = "xmpp:prosody.im/audit"; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
45 reason = meta.reason; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
46 when = meta.when and dt.datetime(meta.when) or nil; |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
47 }); |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
48 if meta.comment then |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
49 meta_st:text_tag("comment", meta.comment); |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
50 end |
|
5744
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
51 |
|
b4607c5dfcac
mod_audit_register: Support for deregister and enable/disable events
Matthew Wild <mwild1@gmail.com>
parents:
5713
diff
changeset
|
52 return { meta_st }; |
|
4932
530d116b7f68
mod_audit*: modules for audit logging in prosody
Jonas Schäfer <jonas@wielicki.name>
parents:
diff
changeset
|
53 end); |
