Software /
code /
prosody
Changeset
12434:cf922f34e264
Merge 0.12->trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 24 Mar 2022 22:30:14 +0000 |
parents | 12432:60eecdd9c65b (current diff) 12433:3dfcdcab5446 (diff) |
children | 12436:9014d5011741 |
files | |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua Wed Mar 23 16:25:37 2022 +0100 +++ b/plugins/muc/muc.lib.lua Thu Mar 24 22:30:14 2022 +0000 @@ -1583,15 +1583,16 @@ return event.allowed, event.error, event.condition; end - -- Can't do anything to other owners or admins - local occupant_affiliation = self:get_affiliation(occupant.bare_jid); - if occupant_affiliation == "owner" or occupant_affiliation == "admin" then + local actor_affiliation = self:get_affiliation(actor) or "none"; + local occupant_affiliation = self:get_affiliation(occupant.bare_jid) or "none"; + + -- Can't do anything to someone with higher affiliation + if valid_affiliations[actor_affiliation] < valid_affiliations[occupant_affiliation] then return nil, "cancel", "not-allowed"; end -- If you are trying to give or take moderator role you need to be an owner or admin if occupant.role == "moderator" or role == "moderator" then - local actor_affiliation = self:get_affiliation(actor); if actor_affiliation ~= "owner" and actor_affiliation ~= "admin" then return nil, "cancel", "not-allowed"; end