Changeset

6181:6baa9a59aa03

plugins/muc/muc.lib: Remove callback parameter from set_role and set_affiliation
author daurnimator <quae@daurnimator.com>
date Fri, 28 Mar 2014 11:05:52 -0400
parents 6180:35388114439f
children 6182:dbf0b09664cd
files plugins/muc/muc.lib.lua
diffstat 1 files changed, 10 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua	Thu Mar 27 19:18:57 2014 -0400
+++ b/plugins/muc/muc.lib.lua	Fri Mar 28 11:05:52 2014 -0400
@@ -1054,20 +1054,18 @@
 		if nick then item.attr.nick = select(3, jid_split(nick)); end
 	end
 	local actor = stanza.attr.from;
-	local callback = function() origin.send(st.reply(stanza)); end
 	local reason = item:get_child_text("reason");
+	local success, errtype, err
 	if item.attr.affiliation and item.attr.jid and not item.attr.role then
-		local success, errtype, err = self:set_affiliation(actor, item.attr.jid, item.attr.affiliation, callback, reason);
-		if not success then origin.send(st.error_reply(stanza, errtype, err)); end
-		return true;
+		success, errtype, err = self:set_affiliation(actor, item.attr.jid, item.attr.affiliation, reason);
 	elseif item.attr.role and item.attr.nick and not item.attr.affiliation then
-		local success, errtype, err = self:set_role(actor, self.jid.."/"..item.attr.nick, item.attr.role, callback, reason);
-		if not success then origin.send(st.error_reply(stanza, errtype, err)); end
-		return true;
+		success, errtype, err = self:set_role(actor, self.jid.."/"..item.attr.nick, item.attr.role, reason);
 	else
-		origin.send(st.error_reply(stanza, "cancel", "bad-request"));
-		return true;
+		success, errtype, err = nil, "cancel", "bad-request";
 	end
+	if not success then origin.send(st.error_reply(stanza, errtype, err)); end
+	origin.send(st.reply(stanza));
+	return true;
 end
 
 function room_mt:handle_admin_query_get_command(origin, stanza)
@@ -1232,7 +1230,7 @@
 		local from = stanza:get_child("x", "http://jabber.org/protocol/muc#user"):get_child("invite").attr.from
 		local current_nick = room:get_occupant_jid(from)
 		log("debug", "%s invited %s into members only room %s, granting membership", from, invitee, room.jid);
-		room:set_affiliation(from, invitee, "member", nil, "Invited by " .. current_nick)
+		room:set_affiliation(from, invitee, "member", "Invited by " .. current_nick)
 	end
 end);
 
@@ -1305,7 +1303,7 @@
 	if not result and self._affiliations[host] == "outcast" then result = "outcast"; end -- host banned
 	return result;
 end
-function room_mt:set_affiliation(actor, jid, affiliation, callback, reason)
+function room_mt:set_affiliation(actor, jid, affiliation, reason)
 	jid = jid_bare(jid);
 	if affiliation == "none" then affiliation = nil; end
 	if affiliation and affiliation ~= "outcast" and affiliation ~= "owner" and affiliation ~= "admin" and affiliation ~= "member" then
@@ -1315,7 +1313,6 @@
 		local actor_affiliation = self:get_affiliation(actor);
 		local target_affiliation = self:get_affiliation(jid);
 		if target_affiliation == affiliation then -- no change, shortcut
-			if callback then callback(); end
 			return true;
 		end
 		if actor_affiliation ~= "owner" then
@@ -1352,7 +1349,6 @@
 		self:publicise_occupant_status(occupant, x, actor, reason);
 	end
 	if self.save then self:save(); end
-	if callback then callback(); end
 	return true;
 end
 
@@ -1380,7 +1376,7 @@
 	end
 	return nil, "cancel", "not-allowed";
 end
-function room_mt:set_role(actor, occupant_jid, role, callback, reason)
+function room_mt:set_role(actor, occupant_jid, role, reason)
 	if role == "none" then role = nil; end
 	if role and role ~= "moderator" and role ~= "participant" and role ~= "visitor" then return nil, "modify", "not-acceptable"; end
 	local allowed, err_type, err_condition = self:can_set_role(actor, occupant_jid, role);
@@ -1395,7 +1391,6 @@
 	occupant.role = role;
 	self:save_occupant(occupant);
 	self:publicise_occupant_status(occupant, x, actor, reason);
-	if callback then callback(); end
 	return true;
 end