1 module:depends("audit"); |
1 module:depends("audit"); |
2 -- luacheck: read globals module.audit |
2 -- luacheck: read globals module.audit |
3 |
3 |
|
4 local dt = require "util.datetime"; |
4 local jid = require "util.jid"; |
5 local jid = require "util.jid"; |
5 local st = require "util.stanza"; |
6 local st = require "util.stanza"; |
6 |
7 |
7 module:hook("user-registered", function(event) |
8 local function audit_basic_event(name, custom_handler) |
8 local session = event.session; |
9 module:hook(name, function (event) |
9 local custom = {}; |
10 local custom; |
|
11 if custom_handler then |
|
12 custom = custom_handler(event); |
|
13 end |
|
14 module:audit(jid.join(event.username, module.host), name, { |
|
15 session = event.session; |
|
16 custom = custom; |
|
17 }); |
|
18 end); |
|
19 end |
|
20 |
|
21 audit_basic_event("user-registered", function (event) |
10 local invite = event.validated_invite or (event.session and event.session.validated_invite); |
22 local invite = event.validated_invite or (event.session and event.session.validated_invite); |
11 if invite then |
23 if not invite then return; end |
12 table.insert(custom, st.stanza( |
24 return { |
|
25 st.stanza( |
13 "invite-used", |
26 "invite-used", |
14 { |
27 { |
15 xmlns = "xmpp:prosody.im/audit", |
28 xmlns = "xmpp:prosody.im/audit", |
16 token = invite.token, |
29 token = invite.token, |
17 } |
30 } |
18 )) |
31 ); |
|
32 }; |
|
33 end); |
|
34 |
|
35 audit_basic_event("user-deregistered-pending"); |
|
36 audit_basic_event("user-deregistered"); |
|
37 |
|
38 audit_basic_event("user-enabled"); |
|
39 audit_basic_event("user-disabled", function (event) |
|
40 local meta = event.meta; |
|
41 if not meta then return end |
|
42 |
|
43 local meta_st = st.stanza("disabled", { |
|
44 xmlns = "xmpp:prosody.im/audit"; |
|
45 reason = meta.reason; |
|
46 when = meta.when and dt.datetime(meta.when) or nil; |
|
47 }); |
|
48 if meta.comment then |
|
49 meta_st:text_tag("comment", meta.comment); |
19 end |
50 end |
20 module:audit(jid.join(event.username, module.host), "user-registered", { |
51 |
21 session = session, |
52 return { meta_st }; |
22 custom = custom, |
|
23 }); |
|
24 end); |
53 end); |