Mercurial > prosody-modules
diff 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 |
line wrap: on
line diff
--- a/mod_http_admin_api/mod_http_admin_api.lua Wed Dec 06 12:12:37 2023 +0000 +++ b/mod_http_admin_api/mod_http_admin_api.lua Wed Dec 06 12:14:12 2023 +0000 @@ -14,6 +14,7 @@ local tokens = module:depends("tokenauth"); local mod_pep = module:depends("pep"); local mod_groups = module:depends("groups_internal"); +local mod_lastlog2 = module:depends("lastlog2"); local push_errors = module:shared("cloud_notify/push_errors"); @@ -28,6 +29,8 @@ local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; local xmlns_nick = "http://jabber.org/protocol/nick"; +assert(mod_lastlog2.get_last_active, "Newer version of mod_lastlog2 is required to use this module"); + local function check_credentials(request) local auth_type, auth_data = string.match(request.headers.authorization or "", "^(%S+)%s(.+)$"); if not (auth_type and auth_data) then @@ -195,12 +198,19 @@ end end + local enabled = true; -- Assume all enabled if on a version without is_enabled + if usermanager.user_is_enabled then + enabled = usermanager.user_is_enabled(username, module.host); + end + return { username = username; display_name = display_name; role = primary_role and primary_role.name or nil; secondary_roles = secondary_roles; roles = legacy_roles; -- COMPAT w/0.12 + enabled = enabled; + last_active = mod_lastlog2.get_last_active(username); }; end