diff options
-rw-r--r-- | net/http.lua | 8 | ||||
-rw-r--r-- | plugins/muc/muc.lib.lua | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/net/http.lua b/net/http.lua index b401b040..fe5250ac 100644 --- a/net/http.lua +++ b/net/http.lua @@ -24,7 +24,6 @@ local tonumber, tostring, traceback = tonumber, tostring, debug.traceback; local xpcall = require "util.xpcall".xpcall; local error = error -local setmetatable = setmetatable; local log = require "util.logger".init("http"); @@ -273,7 +272,12 @@ local function new(options) options = options; request = request; new = options and function (new_options) - return new(setmetatable(new_options, { __index = options })); + local final_options = {}; + for k, v in pairs(options) do final_options[k] = v; end + if new_options then + for k, v in pairs(new_options) do final_options[k] = v; end + end + return new(final_options); end or new; events = events.new(); }; diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua index 65f339ed..4060535a 100644 --- a/plugins/muc/muc.lib.lua +++ b/plugins/muc/muc.lib.lua @@ -969,8 +969,8 @@ function room_mt:handle_admin_query_get_command(origin, stanza) -- You need to be at least an admin, and be requesting info about your affifiliation or lower -- e.g. an admin can't ask for a list of owners local affiliation_rank = valid_affiliations[affiliation or "none"]; - if affiliation_rank >= valid_affiliations.admin and affiliation_rank >= _aff_rank - or self:get_members_only() and self:get_whois() == "anyone" and affiliation_rank >= valid_affiliations.member then + if (affiliation_rank >= valid_affiliations.admin and affiliation_rank >= _aff_rank) + or (self:get_whois() == "anyone") then local reply = st.reply(stanza):query("http://jabber.org/protocol/muc#admin"); for jid in self:each_affiliation(_aff or "none") do local nick = self:get_registered_nick(jid); |