rovoke owner affiliation

i have problem when revoke owner affiliation where there are 2 owner in the room

when i query via ejabberdctl
ejabberdctl get_room_affiliations roomname conference.domain
i receive reply
name1 domain owner
name2 domain owner

in my mobile app, i send packet like below

<iq type="set" to="roomname@conference.domain" id="randomid"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="member" jid="name1@domain"></item></query></iq>

but got reply

<iq xmlns="jabber:client" from="roomname@conference.domain" to="name1@domain/res" id="randomid" type="error"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="member" jid="name1@domain"></item></query><error code="405" type="cancel"><not-allowed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></not-allowed></error></iq>

anyone can help me, what i'm missing here?

I think it isn't allowed to

I think it isn't allowed to remove ownership oneself in ejabberd. It isn't a bug, it's implemented that way.

so you are saying that

so you are saying that ejabberd doesn't support revoking owner?
according to XMPP:
A service MUST NOT allow an owner to revoke his or her own owner status if there are no other owners; if an owner attempts to do this, the service MUST return a error to the owner. However, a service SHOULD allow an owner to revoke his or her own owner status if there are other owners.
If an implementation does not allow one owner to revoke another user's owner status, the implementation MUST return a error to the owner who made the request.
Note: Allowing an owner to remove another user's owner status can compromise the control model for room management; therefore this feature is OPTIONAL, and implementations are encouraged to support owner removal through an interface that is open only to individuals with service-wide admin status.

but why if i use ejabberdctl to change affiliation to none, it works fine?

Syndicate content