From 8226d6de4cf4c690167847de3f56f0b30de1294f Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 9 Nov 2018 15:59:32 +0100 Subject: net.http: Manually merge settings (fixes #1231) Metatable table indexing is done raw, so metatables can't be chained --- net/http.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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(); }; -- cgit v1.2.3 From a13259451a7b08b5321e7f47dce94482e862d1ac Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 9 Nov 2018 18:40:13 +0100 Subject: MUC: Clarify condition with parenthesis --- plugins/muc/muc.lib.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua index 65f339ed..b64404c0 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_members_only() and self:get_whois() == "anyone" and affiliation_rank >= valid_affiliations.member) 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); -- cgit v1.2.3 From 60aa42033a2f87013638a7318fb1ea8997e074a2 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 9 Nov 2018 18:49:45 +0100 Subject: MUC: Allow anyone read access to all affiliation lists in non-anonymous rooms (fixes #1230) --- plugins/muc/muc.lib.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua index b64404c0..4060535a 100644 --- a/plugins/muc/muc.lib.lua +++ b/plugins/muc/muc.lib.lua @@ -970,7 +970,7 @@ function room_mt:handle_admin_query_get_command(origin, stanza) -- 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 + 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); -- cgit v1.2.3