diff --git a/xmpp/handlers.go b/xmpp/handlers.go index afb5027..d21c394 100644 --- a/xmpp/handlers.go +++ b/xmpp/handlers.go @@ -1813,6 +1813,11 @@ func handleSetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer var status telegram.ChatMemberStatus + if item.Role != "" && item.Affiliation != "" { + iqAnswerSetError(answer, 400) + return + } + switch item.Role { case "none": status = telegram.ChatMemberStatusKicked @@ -1823,7 +1828,6 @@ func handleSetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer case "moderator": status = telegram.ChatMemberStatusPromoted } - // affiliations have a higher priority over roles switch item.Affiliation { case "none": status = telegram.ChatMemberStatusKicked