aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-10-21 16:17:55 +0100
committerMatthew Wild <mwild1@gmail.com>2018-10-21 16:17:55 +0100
commit58d6d5c41d3a685f0d2bb7e3d691c4891deeb5db (patch)
tree4ae81cd686f46f91cf7e3c2e343ae7f7208927a9
parent9825eee8c1d9ca7a245650cf4b21c64c0beb578f (diff)
downloadprosody-58d6d5c41d3a685f0d2bb7e3d691c4891deeb5db.tar.gz
prosody-58d6d5c41d3a685f0d2bb7e3d691c4891deeb5db.zip
MUC: Include affiliation data when iterating over affiliations with a room
-rw-r--r--plugins/muc/muc.lib.lua19
1 files changed, 8 insertions, 11 deletions
diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua
index d8fd7128..4e1d32f2 100644
--- a/plugins/muc/muc.lib.lua
+++ b/plugins/muc/muc.lib.lua
@@ -1222,17 +1222,14 @@ end
-- Iterates over jid, affiliation pairs
function room_mt:each_affiliation(with_affiliation)
- if not with_affiliation then
- return pairs(self._affiliations);
- else
- return function(_affiliations, jid)
- local affiliation;
- repeat -- Iterate until we get a match
- jid, affiliation = next(_affiliations, jid);
- until jid == nil or affiliation == with_affiliation
- return jid, affiliation;
- end, self._affiliations, nil
- end
+ local _affiliations, _affiliation_data = self._affiliations, self._affiliation_data;
+ return function(_, jid)
+ local affiliation;
+ repeat -- Iterate until we get a match
+ jid, affiliation = next(_affiliations, jid);
+ until with_affiliation == nil or jid == nil or affiliation == with_affiliation
+ return jid, affiliation, _affiliation_data[jid];
+ end, nil, nil;
end
function room_mt:set_affiliation(actor, jid, affiliation, reason, data)