# HG changeset patch # User Matthew Wild # Date 1273702006 -3600 # Node ID 5584c928d1f77253beeb9b020979b7f3709fe36f # Parent b9ebd44a35f92f4371a00a2e970877552bec8b75 usermanager: Fix logic for per-host admin tables (thanks Maranda) diff -r b9ebd44a35f9 -r 5584c928d1f7 core/usermanager.lua --- a/core/usermanager.lua Sun May 09 20:48:21 2010 +0100 +++ b/core/usermanager.lua Wed May 12 23:06:46 2010 +0100 @@ -84,13 +84,15 @@ 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