equal
deleted
inserted
replaced
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 |