Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 9531:f2d70dc13700
MUC: Include affiliation data when iterating over affiliations with a room
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 21 Oct 2018 16:17:55 +0100 |
parent | 9530:3bc5c22e2ca4 |
child | 9532:9bb33edd7255 |
comparison
equal
deleted
inserted
replaced
9530:3bc5c22e2ca4 | 9531:f2d70dc13700 |
---|---|
1220 return result; | 1220 return result; |
1221 end | 1221 end |
1222 | 1222 |
1223 -- Iterates over jid, affiliation pairs | 1223 -- Iterates over jid, affiliation pairs |
1224 function room_mt:each_affiliation(with_affiliation) | 1224 function room_mt:each_affiliation(with_affiliation) |
1225 if not with_affiliation then | 1225 local _affiliations, _affiliation_data = self._affiliations, self._affiliation_data; |
1226 return pairs(self._affiliations); | 1226 return function(_, jid) |
1227 else | 1227 local affiliation; |
1228 return function(_affiliations, jid) | 1228 repeat -- Iterate until we get a match |
1229 local affiliation; | 1229 jid, affiliation = next(_affiliations, jid); |
1230 repeat -- Iterate until we get a match | 1230 until with_affiliation == nil or jid == nil or affiliation == with_affiliation |
1231 jid, affiliation = next(_affiliations, jid); | 1231 return jid, affiliation, _affiliation_data[jid]; |
1232 until jid == nil or affiliation == with_affiliation | 1232 end, nil, nil; |
1233 return jid, affiliation; | |
1234 end, self._affiliations, nil | |
1235 end | |
1236 end | 1233 end |
1237 | 1234 |
1238 function room_mt:set_affiliation(actor, jid, affiliation, reason, data) | 1235 function room_mt:set_affiliation(actor, jid, affiliation, reason, data) |
1239 module:log("debug", "data is %s", tostring(data)); | 1236 module:log("debug", "data is %s", tostring(data)); |
1240 if not actor then return nil, "modify", "not-acceptable"; end; | 1237 if not actor then return nil, "modify", "not-acceptable"; end; |