end
event.field, event.value = nil, nil;
- self:save();
+ self:save(true);
origin.send(st.reply(stanza));
if next(event.status_codes) then
else
success, errtype, err = nil, "cancel", "bad-request";
end
- self:save();
+ self:save(true);
if not success then
origin.send(st.error_reply(stanza, errtype, err));
else
end
end
- self:save();
+ self:save(true);
module:fire_event("muc-set-affiliation", {
room = self;
if not resource and type(data) == "string" then
-- bare jid: affiliation
room._affiliations[jid] = data;
- elseif host == room_host and node == room_name and resource then
+ elseif host == room_host and node == room_name and resource and type(data) == "table" then
-- full room jid: bare real jid and role
local bare_jid = data.bare_jid;
local occupant = occupant_lib.new(bare_jid, jid);
end
end
occupant_sessions[bare_jid] = nil;
- else
+ elseif type(data) == "table" and data.name then
-- full user jid: presence
local presence = st.deserialize(data);
local bare_jid = jid_bare(jid);