comparison mod_http_admin_api/mod_http_admin_api.lua @ 5775:4c3216d9b118

mod_http_admin_api: Include user account status and activity in get_user_info
author Matthew Wild <mwild1@gmail.com>
date Wed, 06 Dec 2023 12:14:12 +0000
parents 4c84cfb586c1
children 6ab9e1763f35
comparison
equal deleted inserted replaced
5774:7b722955c59b 5775:4c3216d9b118
12 local announce = module:depends("announce"); 12 local announce = module:depends("announce");
13 local invites = module:depends("invites"); 13 local invites = module:depends("invites");
14 local tokens = module:depends("tokenauth"); 14 local tokens = module:depends("tokenauth");
15 local mod_pep = module:depends("pep"); 15 local mod_pep = module:depends("pep");
16 local mod_groups = module:depends("groups_internal"); 16 local mod_groups = module:depends("groups_internal");
17 local mod_lastlog2 = module:depends("lastlog2");
17 18
18 local push_errors = module:shared("cloud_notify/push_errors"); 19 local push_errors = module:shared("cloud_notify/push_errors");
19 20
20 local site_name = module:get_option_string("site_name", module.host); 21 local site_name = module:get_option_string("site_name", module.host);
21 22
25 26
26 local www_authenticate_header = ("Bearer realm=%q"):format(module.host.."/"..module.name); 27 local www_authenticate_header = ("Bearer realm=%q"):format(module.host.."/"..module.name);
27 28
28 local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; 29 local xmlns_pubsub = "http://jabber.org/protocol/pubsub";
29 local xmlns_nick = "http://jabber.org/protocol/nick"; 30 local xmlns_nick = "http://jabber.org/protocol/nick";
31
32 assert(mod_lastlog2.get_last_active, "Newer version of mod_lastlog2 is required to use this module");
30 33
31 local function check_credentials(request) 34 local function check_credentials(request)
32 local auth_type, auth_data = string.match(request.headers.authorization or "", "^(%S+)%s(.+)$"); 35 local auth_type, auth_data = string.match(request.headers.authorization or "", "^(%S+)%s(.+)$");
33 if not (auth_type and auth_data) then 36 if not (auth_type and auth_data) then
34 return false; 37 return false;
193 for role_name in pairs(roles_map) do 196 for role_name in pairs(roles_map) do
194 legacy_roles:push(role_name); 197 legacy_roles:push(role_name);
195 end 198 end
196 end 199 end
197 200
201 local enabled = true; -- Assume all enabled if on a version without is_enabled
202 if usermanager.user_is_enabled then
203 enabled = usermanager.user_is_enabled(username, module.host);
204 end
205
198 return { 206 return {
199 username = username; 207 username = username;
200 display_name = display_name; 208 display_name = display_name;
201 role = primary_role and primary_role.name or nil; 209 role = primary_role and primary_role.name or nil;
202 secondary_roles = secondary_roles; 210 secondary_roles = secondary_roles;
203 roles = legacy_roles; -- COMPAT w/0.12 211 roles = legacy_roles; -- COMPAT w/0.12
212 enabled = enabled;
213 last_active = mod_lastlog2.get_last_active(username);
204 }; 214 };
205 end 215 end
206 216
207 local function get_session_debug_info(session) 217 local function get_session_debug_info(session)
208 local info = { 218 local info = {