Comparison

core/moduleapi.lua @ 12662:07424992d7fc

mod_authz_internal, and more: New iteration of role API These changes to the API (hopefully the last) introduce a cleaner separation between the user's primary (default) role, and their secondary (optional) roles. To keep the code sane and reduce complexity, a data migration is needed for people using stored roles in 0.12. This can be performed with prosodyctl mod_authz_internal migrate <host>
author Matthew Wild <mwild1@gmail.com>
date Wed, 17 Aug 2022 16:38:53 +0100
parent 12652:30e2a0107217
child 12690:546c7e0f3f31
comparison
equal deleted inserted replaced
12661:1c391c17a907 12662:07424992d7fc
536 path = resolve_relative_path(self:get_directory(), path); 536 path = resolve_relative_path(self:get_directory(), path);
537 return io.open(path, mode); 537 return io.open(path, mode);
538 end 538 end
539 539
540 function api:open_store(name, store_type) 540 function api:open_store(name, store_type)
541 if self.host == "*" then return nil, "global-storage-not-supported"; end
541 return require"core.storagemanager".open(self.host, name or self.name, store_type); 542 return require"core.storagemanager".open(self.host, name or self.name, store_type);
542 end 543 end
543 544
544 function api:measure(name, stat_type, conf) 545 function api:measure(name, stat_type, conf)
545 local measure = require "core.statsmanager".measure; 546 local measure = require "core.statsmanager".measure;
627 end 628 end
628 if type(context) == "string" then -- check JID permissions 629 if type(context) == "string" then -- check JID permissions
629 local role; 630 local role;
630 local node, host = jid_split(context); 631 local node, host = jid_split(context);
631 if host == self.host then 632 if host == self.host then
632 role = hosts[host].authz.get_user_default_role(node); 633 role = hosts[host].authz.get_user_role(node);
633 else 634 else
634 role = hosts[self.host].authz.get_jid_role(context); 635 role = hosts[self.host].authz.get_jid_role(context);
635 end 636 end
636 if not role then 637 if not role then
637 self:log("debug", "Access denied: JID <%s> may not %s (no role found)", context, action); 638 self:log("debug", "Access denied: JID <%s> may not %s (no role found)", context, action);