mod_admin_blocklist/mod_admin_blocklist.lua
changeset 5021 96e83b4a93f7
parent 5020 964de9997552
equal deleted inserted replaced
5020:964de9997552 5021:96e83b4a93f7
     1 -- mod_admin_blocklist
     1 -- mod_admin_blocklist
     2 --
     2 --
     3 -- If a local admin has blocked a domain, don't allow s2s to that domain
     3 -- If a local admin has blocked a domain, don't allow s2s to that domain
     4 --
     4 --
     5 -- Copyright (C) 2015-2021 Kim Alvefur
     5 -- Copyright (C) 2015-2022 Kim Alvefur
     6 --
     6 --
     7 -- This file is MIT/X11 licensed.
     7 -- This file is MIT/X11 licensed.
     8 --
     8 --
     9 
     9 
    10 module:depends("blocklist");
    10 module:depends("blocklist");
    15 local usermanager = require "core.usermanager";
    15 local usermanager = require "core.usermanager";
    16 
    16 
    17 local admins;
    17 local admins;
    18 if usermanager.get_jids_with_role then
    18 if usermanager.get_jids_with_role then
    19 	local set = require "util.set";
    19 	local set = require "util.set";
    20 	admins = set.new(usermanager.get_jids_with_role("prosody:admin", module.host));
    20 	local include_roles = module:get_option_set("admin_blocklist_roles", { "prosody:operator"; "prosody:admin" });
       
    21 
       
    22 	admins = set.new();
       
    23 	for role in include_roles do
       
    24 		admins:include(set.new(usermanager.get_jids_with_role(role, module.host)));
       
    25 	end
    21 else -- COMPAT w/pre-0.12
    26 else -- COMPAT w/pre-0.12
    22 	admins = module:get_option_inherited_set("admins", {});
    27 	admins = module:get_option_inherited_set("admins", {});
    23 end
    28 end
    24 admins = admins /
    29 admins = admins /
    25 	function (admin) -- Filter out non-local admins
    30 	function (admin) -- Filter out non-local admins