snikket-server/snikket-modules/mod_snikket_restricted_users/mod_snikket_restricted_user...

17 lines
527 B
Lua

local jid_bare = require "util.jid".bare;
local um_get_roles = require "core.usermanager".get_roles;
local function check_user_isolated(event)
local session = event.session;
if not session.no_host_isolation then
local bare_jid = jid_bare(session.full_jid);
local roles = um_get_roles(bare_jid, module.host);
if roles and not roles["prosody:restricted"] then
-- Bypass isolation for all unrestricted users
session.no_host_isolation = true;
end
end
end
module:hook("resource-bind", check_user_isolated, -0.5);