comparison mod_compat_muc_admin/mod_compat_muc_admin.lua @ 628:c72be31941fa

mod_compat_muc_admin: we shall make sure that only owners can destroy rooms and not everyone, isn't it?
author Marco Cirillo <maranda@lightwitch.org>
date Tue, 27 Mar 2012 16:07:52 +0000
parents a8ff69c9b498
children 7d4cde86b12e
comparison
equal deleted inserted replaced
627:a8ff69c9b498 628:c72be31941fa
115 self:process_form(origin, stanza); 115 self:process_form(origin, stanza);
116 end 116 end
117 elseif xmlns == xmlns_mo and stanza.tags[1].tags[1] then 117 elseif xmlns == xmlns_mo and stanza.tags[1].tags[1] then
118 local child = stanza.tags[1].tags[1]; 118 local child = stanza.tags[1].tags[1];
119 if child.name == "destroy" then 119 if child.name == "destroy" then
120 local newjid = child.attr.jid; 120 if self:get_affiliation(stanza.attr.from) == "owner" then
121 local reason, password; 121 local newjid = child.attr.jid;
122 for _,tag in ipairs(child.tags) do 122 local reason, password;
123 if tag.name == "reason" then 123 for _,tag in ipairs(child.tags) do
124 reason = #tag.tags == 0 and tag[1]; 124 if tag.name == "reason" then
125 elseif tag.name == "password" then 125 reason = #tag.tags == 0 and tag[1];
126 password = #tag.tags == 0 and tag[1]; 126 elseif tag.name == "password" then
127 end 127 password = #tag.tags == 0 and tag[1];
128 end 128 end
129 self:destroy(newjid, reason, password); 129 end
130 origin.send(st.reply(stanza)); 130 self:destroy(newjid, reason, password);
131 origin.send(st.reply(stanza));
132 else origin.send(st.error_reply(stanza, "auth", "forbidden", "Only owners can destroy rooms")); end
131 else 133 else
132 self:compat_iq(origin, stanza, xmlns); 134 self:compat_iq(origin, stanza, xmlns);
133 end 135 end
134 else 136 else
135 origin.send(st.error_reply(stanza, "modify", "bad-request")); 137 origin.send(st.error_reply(stanza, "modify", "bad-request"));