Comparison

plugins/muc/muc.lib.lua @ 6475:3c815a64042b

plugins/muc/muc.lib: Fix passing actor along as a boolean (thanks fippo)
author daurnimator <quae@daurnimator.com>
date Wed, 15 Oct 2014 14:28:16 -0400
parent 6454:6842b07fc7bc
child 6476:fb8a9873728b
comparison
equal deleted inserted replaced
6474:ee13d7dfa988 6475:3c815a64042b
998 affiliation = affiliation ~= "none" and affiliation or nil; -- coerces `affiliation == false` to `nil` 998 affiliation = affiliation ~= "none" and affiliation or nil; -- coerces `affiliation == false` to `nil`
999 999
1000 local target_affiliation = self._affiliations[jid]; -- Raw; don't want to check against host 1000 local target_affiliation = self._affiliations[jid]; -- Raw; don't want to check against host
1001 local is_downgrade = valid_affiliations[target_affiliation or "none"] > valid_affiliations[affiliation or "none"]; 1001 local is_downgrade = valid_affiliations[target_affiliation or "none"] > valid_affiliations[affiliation or "none"];
1002 1002
1003 if actor ~= true then 1003 if actor == true then
1004 actor = nil -- So we can pass it safely to 'publicise_occupant_status' below
1005 else
1004 local actor_affiliation = self:get_affiliation(actor); 1006 local actor_affiliation = self:get_affiliation(actor);
1005 if actor_affiliation == "owner" then 1007 if actor_affiliation == "owner" then
1006 if jid_bare(actor) == jid then -- self change 1008 if jid_bare(actor) == jid then -- self change
1007 -- need at least one owner 1009 -- need at least one owner
1008 local is_last = true; 1010 local is_last = true;
1096 if valid_roles[role or "none"] == nil then 1098 if valid_roles[role or "none"] == nil then
1097 return nil, "modify", "not-acceptable"; 1099 return nil, "modify", "not-acceptable";
1098 end 1100 end
1099 role = role ~= "none" and role or nil; -- coerces `role == false` to `nil` 1101 role = role ~= "none" and role or nil; -- coerces `role == false` to `nil`
1100 1102
1101 if actor ~= true then 1103 if actor == true then
1104 actor = nil -- So we can pass it safely to 'publicise_occupant_status' below
1105 else
1102 -- Can't do anything to other owners or admins 1106 -- Can't do anything to other owners or admins
1103 local occupant_affiliation = self:get_affiliation(occupant.bare_jid); 1107 local occupant_affiliation = self:get_affiliation(occupant.bare_jid);
1104 if occupant_affiliation == "owner" and occupant_affiliation == "admin" then 1108 if occupant_affiliation == "owner" and occupant_affiliation == "admin" then
1105 return nil, "cancel", "not-allowed"; 1109 return nil, "cancel", "not-allowed";
1106 end 1110 end