Software /
code /
prosody
Changeset
12920:cdb996637b08
authz: Add method for retrieving all roles
Some of the OAuth stuff highlights a small need to retrieve a list of
roles somehow. Handy if you ever need a role selector in adhoc or
something.
Unless there's some O(n) thing we were avoiding?
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 04 Mar 2023 18:40:43 +0100 |
parents | 12919:7c0e5c7eff7c |
children | 12921:d238633a9d67 |
files | core/usermanager.lua plugins/mod_authz_internal.lua |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/core/usermanager.lua Thu Mar 02 22:34:29 2023 +0100 +++ b/core/usermanager.lua Sat Mar 04 18:40:43 2023 +0100 @@ -53,6 +53,7 @@ get_users_with_role = function (role_name) end; add_default_permission = function (role_name, action, policy) end; get_role_by_name = function (role_name) end; + get_all_roles = function () end; }; local provider_mt = { __index = new_null_provider() }; @@ -293,6 +294,11 @@ return hosts[host].authz.get_role_by_name(role_name); end +local function get_all_roles(host) + if host and not hosts[host] then return false; end + return hosts[host].authz.get_all_roles(); +end + return { new_null_provider = new_null_provider; initialize_host = initialize_host; @@ -320,6 +326,7 @@ set_jid_role = set_jid_role; get_jids_with_role = get_jids_with_role; get_role_by_name = get_role_by_name; + get_all_roles = get_all_roles; -- Deprecated is_admin = is_admin;
--- a/plugins/mod_authz_internal.lua Thu Mar 02 22:34:29 2023 +0100 +++ b/plugins/mod_authz_internal.lua Sat Mar 04 18:40:43 2023 +0100 @@ -280,6 +280,10 @@ return assert(role_registry[role_name], role_name); end +function get_all_roles() + return role_registry; +end + -- COMPAT: Migrate from 0.12 role storage local function do_migration(migrate_host) local old_role_store = assert(module:context(migrate_host):open_store("roles"));