Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 5334:da7857891eb8
MUC: Fix affiliation check for admins, and bring it in line with the spec (thanks Maranda).
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Tue, 26 Feb 2013 20:31:41 +0500 |
parent | 5294:87f07dd0bbfb |
child | 5335:bb81c13d2c6f |
comparison
equal
deleted
inserted
replaced
5333:760c345dc7a1 | 5334:da7857891eb8 |
---|---|
985 if target_affiliation == affiliation then -- no change, shortcut | 985 if target_affiliation == affiliation then -- no change, shortcut |
986 if callback then callback(); end | 986 if callback then callback(); end |
987 return true; | 987 return true; |
988 end | 988 end |
989 if actor_affiliation ~= "owner" then | 989 if actor_affiliation ~= "owner" then |
990 if actor_affiliation ~= "admin" or target_affiliation == "owner" or target_affiliation == "admin" then | 990 if affiliation == "owner" or affiliation == "admin" or actor_affiliation ~= "admin" or target_affiliation == "owner" or target_affiliation == "admin" then |
991 return nil, "cancel", "not-allowed"; | 991 return nil, "cancel", "not-allowed"; |
992 end | 992 end |
993 elseif target_affiliation == "owner" and jid_bare(actor) == jid then -- self change | 993 elseif target_affiliation == "owner" and jid_bare(actor) == jid then -- self change |
994 local is_last = true; | 994 local is_last = true; |
995 for j, aff in pairs(self._affiliations) do if j ~= jid and aff == "owner" then is_last = false; break; end end | 995 for j, aff in pairs(self._affiliations) do if j ~= jid and aff == "owner" then is_last = false; break; end end |