Mercurial > prosody-modules
comparison mod_audit/mod_audit.lua @ 5757:08a635862201
mod_audit: Update command to handle storing JIDs instead of only usernames
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 02 Dec 2023 11:48:19 +0100 |
parents | 1bdc6b5979ee |
children | 754f8eaad34c |
comparison
equal
deleted
inserted
replaced
5756:e199f33f7a2e | 5757:08a635862201 |
---|---|
170 local arg = require "util.argparse".parse(arg_, { | 170 local arg = require "util.argparse".parse(arg_, { |
171 value_params = { "limit" }; | 171 value_params = { "limit" }; |
172 }); | 172 }); |
173 | 173 |
174 module:log("debug", "arg = %q", arg); | 174 module:log("debug", "arg = %q", arg); |
175 local query_user, host = jid.prepped_split(arg[1]); | 175 local query_jid = jid.prep(arg[1]); |
176 local host = jid.host(query_jid); | |
176 | 177 |
177 if arg.prune then | 178 if arg.prune then |
178 local sm = require "core.storagemanager"; | 179 local sm = require "core.storagemanager"; |
179 if host then | 180 if host then |
180 sm.initialize_host(host); | 181 sm.initialize_host(host); |
199 require "core.storagemanager".initialize_host(host); | 200 require "core.storagemanager".initialize_host(host); |
200 local store = stores[host]; | 201 local store = stores[host]; |
201 local c = 0; | 202 local c = 0; |
202 | 203 |
203 if arg.global then | 204 if arg.global then |
204 if query_user then | 205 if jid.node(query_jid) then |
205 print("WW: Specifying a user account is incompatible with --global. Showing only global events."); | 206 print("WW: Specifying a user account is incompatible with --global. Showing only global events."); |
206 end | 207 end |
207 query_user = "@"; | 208 query_jid = "@"; |
209 elseif host == query_jid then | |
210 query_jid = "@"; | |
208 end | 211 end |
209 | 212 |
210 local results, err = store:find(nil, { | 213 local results, err = store:find(nil, { |
211 with = query_user; | 214 with = query_jid; |
212 limit = arg.limit and tonumber(arg.limit) or nil; | 215 limit = arg.limit and tonumber(arg.limit) or nil; |
213 reverse = true; | 216 reverse = true; |
214 }) | 217 }) |
215 if not results then | 218 if not results then |
216 print("EE: Failed to query audit log: "..tostring(err)); | 219 print("EE: Failed to query audit log: "..tostring(err)); |
221 { title = "Date", key = "when", width = 19, mapper = function (when) return os.date("%Y-%m-%d %R:%S", when); end }; | 224 { title = "Date", key = "when", width = 19, mapper = function (when) return os.date("%Y-%m-%d %R:%S", when); end }; |
222 { title = "Source", key = "source", width = "2p" }; | 225 { title = "Source", key = "source", width = "2p" }; |
223 { title = "Event", key = "event_type", width = "2p" }; | 226 { title = "Event", key = "event_type", width = "2p" }; |
224 }; | 227 }; |
225 | 228 |
226 if arg.show_user ~= false and (not arg.global and not query_user) or arg.show_user then | 229 if arg.show_user ~= false and (not arg.global and not query_jid) or arg.show_user then |
227 table.insert(colspec, { | 230 table.insert(colspec, { |
228 title = "User", key = "username", width = "2p", | 231 title = "User", key = "username", width = "2p", |
229 mapper = function (user) | 232 mapper = function (user) |
230 if user == "@" then return ""; end | 233 if user == "@" then return ""; end |
231 if user:sub(-#host-1, -1) == ("@"..host) then | 234 if user:sub(-#host-1, -1) == ("@"..host) then |