Mercurial > prosody-hg
comparison plugins/muc/muc.lib.lua @ 6392:8528d1da461f
plugins/muc/muc.lib: Use get_affilation() inside of set_affiliation(), so that the override in mod_muc works
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Fri, 05 Sep 2014 11:20:54 -0400 |
| parents | 4d334d00c635 |
| children | fff6ca13cb0f |
comparison
equal
deleted
inserted
replaced
| 6391:4d334d00c635 | 6392:8528d1da461f |
|---|---|
| 982 | 982 |
| 983 local target_affiliation = self._affiliations[jid]; -- Raw; don't want to check against host | 983 local target_affiliation = self._affiliations[jid]; -- Raw; don't want to check against host |
| 984 local is_downgrade = valid_affiliations[target_affiliation or "none"] > valid_affiliations[affiliation or "none"]; | 984 local is_downgrade = valid_affiliations[target_affiliation or "none"] > valid_affiliations[affiliation or "none"]; |
| 985 | 985 |
| 986 if actor ~= true then | 986 if actor ~= true then |
| 987 local actor_bare = jid_bare(actor); | 987 local actor_affiliation = self:get_affiliation(actor); |
| 988 local actor_affiliation = self._affiliations[actor_bare]; | |
| 989 if actor_affiliation == "owner" then | 988 if actor_affiliation == "owner" then |
| 990 if actor_bare == jid then -- self change | 989 if jid_bare(actor) == jid then -- self change |
| 991 -- need at least one owner | 990 -- need at least one owner |
| 992 local is_last = true; | 991 local is_last = true; |
| 993 for j, aff in pairs(self._affiliations) do if j ~= jid and aff == "owner" then is_last = false; break; end end | 992 for j, aff in pairs(self._affiliations) do if j ~= jid and aff == "owner" then is_last = false; break; end end |
| 994 if is_last then | 993 if is_last then |
| 995 return nil, "cancel", "conflict"; | 994 return nil, "cancel", "conflict"; |
