Mercurial > prosody-modules
annotate mod_list_active/mod_list_active.lua @ 6237:9d88c3d9eea5
mod_http_oauth2: Enforce the registered grant types
Thus a client can limit itself to certain grant types.
Not sure if this prevents any attacks, but what was the point of
including this in the registration if it was not going to be enforced?
This became easier to do with client_id being available earlier.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 02 Jun 2025 20:55:20 +0200 |
| parents | c06c59b99b3c |
| children |
| rev | line source |
|---|---|
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 -- Copyright (C) 2012-2013 Kim Alvefur |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local um = require "core.usermanager"; |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local sm = require "core.storagemanager"; |
|
2637
39c39844cd4c
mod_list_active: Inverse of mod_list_inactive (closes #705)
Kim Alvefur <zash@zash.se>
parents:
1766
diff
changeset
|
5 local dm = require "util.datamanager"; |
|
1496
cccb151a4cc5
mod_list_inactive: Delay joining JIDs until they are used
Kim Alvefur <zash@zash.se>
parents:
1267
diff
changeset
|
6 local jid_join = require"util.jid".join; |
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 local multipliers = { |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 d = 86400, -- day |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 w = 604800, -- week |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 m = 2629746, -- month |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 y = 31556952, -- year |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 } |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
|
1497
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
15 local output_formats = { |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
16 default = "%s", |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
17 event = "%s %s", |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
18 } |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
19 |
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 function module.command(arg) |
|
1766
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
21 if #arg < 2 then |
|
2637
39c39844cd4c
mod_list_active: Inverse of mod_list_inactive (closes #705)
Kim Alvefur <zash@zash.se>
parents:
1766
diff
changeset
|
22 print("usage: prosodyctl mod_list_active example.net time [format]"); |
|
1766
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
23 print("time is a number followed by 'day', 'week', 'month' or 'year'"); |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
24 print("formats are:"); |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
25 for name, fmt in pairs(output_formats) do |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
26 print(name, fmt:format("user@example.com", "last action")) |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
27 end |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
28 return; |
|
e4c3d335b07f
mod_list_inactive: Print some usage info when not called with enough arguments
Kim Alvefur <zash@zash.se>
parents:
1497
diff
changeset
|
29 end |
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 local items = {}; |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 local host = arg[1]; |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 assert(hosts[host], "Host "..tostring(host).." does not exist"); |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 sm.initialize_host(host); |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 um.initialize_host(host); |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 local max_age, unit = assert(arg[2], "No time range given"):match("^(%d*)%s*([dwmy]?)"); |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 max_age = os.time() - ( tonumber(max_age) or 1 ) * ( multipliers[unit] or 1 ); |
|
1497
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
38 |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
39 local output = assert(output_formats[arg[3] or "default"], "No such output format: "..tostring(arg[3] or "default")); |
|
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
40 |
|
2637
39c39844cd4c
mod_list_active: Inverse of mod_list_inactive (closes #705)
Kim Alvefur <zash@zash.se>
parents:
1766
diff
changeset
|
41 for user in dm.users(host, "lastlog") do |
|
39c39844cd4c
mod_list_active: Inverse of mod_list_inactive (closes #705)
Kim Alvefur <zash@zash.se>
parents:
1766
diff
changeset
|
42 local last_active = dm.load(user, host, "lastlog"); |
|
1497
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
43 local last_action = last_active and last_active.event or "?" |
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 last_active = last_active and last_active.timestamp or 0; |
|
2640
c06c59b99b3c
mod_list_active: Actually invert condition (thanks Dan)
Kim Alvefur <zash@zash.se>
parents:
2637
diff
changeset
|
45 if last_active > max_age then |
|
1497
d1836dfa4ae4
mod_list_inactive: Add different output formats
Kim Alvefur <zash@zash.se>
parents:
1496
diff
changeset
|
46 print(output:format(jid_join(user, host), last_action)); |
|
1267
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 end |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 end |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 end |
|
589991b148e8
mod_list_inactive: Parse data collected by mod_lastlog and print users who have not logged in for some time
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 |
