From b8a433767a1b9279c5c44325d85a3aee696a6e66 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 12 May 2010 23:06:46 +0100 Subject: usermanager: Fix logic for per-host admin tables (thanks Maranda) --- core/usermanager.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/usermanager.lua b/core/usermanager.lua index fd579692..e338ebbd 100644 --- a/core/usermanager.lua +++ b/core/usermanager.lua @@ -84,13 +84,15 @@ function new_default_provider(host) function provider.is_admin(jid) local admins = config.get(host, "core", "admins"); - if admins ~= config.get("*", "core", "admins") and type(admins) == "table" then - jid = jid_bare(jid); - for _,admin in ipairs(admins) do - if admin == jid then return true; end + if admins ~= config.get("*", "core", "admins") then + if type(admins) == "table" then + jid = jid_bare(jid); + for _,admin in ipairs(admins) do + if admin == jid then return true; end + end + elseif admins then + log("error", "Option 'admins' for host '%s' is not a table", host); end - elseif admins then - log("error", "Option 'admins' for host '%s' is not a table", host); end return is_admin(jid); -- Test whether it's a global admin instead end -- cgit v1.2.3