Software /
code /
prosody
Changeset
3218:032b81731f0f
usermanager: Handle checking for global admins on behalf of providers
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 09 Jun 2010 21:24:20 +0100 |
parents | 3217:382f70627ff9 |
children | 3219:fd06023cbdcc |
files | core/usermanager.lua |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/core/usermanager.lua Wed Jun 09 22:20:53 2010 +0500 +++ b/core/usermanager.lua Wed Jun 09 21:24:20 2010 +0100 @@ -90,20 +90,25 @@ end function is_admin(jid, host) + local is_admin; if host and host ~= "*" then - return hosts[host].users.is_admin(jid); - else -- Test only whether this JID is a global admin + is_admin = hosts[host].users.is_admin(jid); + end + if not is_admin then -- Test only whether this JID is a global admin local admins = config.get("*", "core", "admins"); if type(admins) == "table" then jid = jid_bare(jid); for _,admin in ipairs(admins) do - if admin == jid then return true; end + if admin == jid then + is_admin = true; + break; + end end elseif admins then log("error", "Option 'admins' for host '%s' is not a table", host); end - return nil; end + return is_admin; end return _M;