Allow any member to retrieve the room's member list even if not yet an occupant

Description

from https://discourse.igniterealtime.org/t/listing-members-when-not-joined/55148/7#203474

Currently Openfire is not letting a user to get list of room's occupants if that user is not yet an occupant of that room. Though specs say a service should allow that.

This is what XEP-0045 has to say (taken from section 9.5 just under example 119): "A service SHOULD also allow any member to retrieve the member list even if not yet an occupant".

Environment

None

Activity

Show:

csh November 2, 2015 at 9:10 AM

Currently not. Requires too many major changes to the MUC logic.

Daryl Herzmann October 31, 2015 at 3:12 AM

Hi CSH, are you still looking into this?

csh June 7, 2014 at 10:20 PM

Had a look at this. The problem is in LocalMUCUser#process, which returns the error, if the sender is not an occupant. Tried to rectify this, but figured out, that it would require major changes to the MUC logic, because the IQAdminHandler as well as the IQOwnerHandler all require a MUCRole instance (aka occupant).

=> Seems like you can only make admin actions while you are in the room, which is not good.

Daryl Herzmann May 23, 2014 at 8:05 PM

Will reopen and assign to CSH to see what he thinks

Colton Yaroschak May 23, 2014 at 7:07 PM
Edited

I'm not sure this is actually resolved, from what I can tell there is still an error preventing Openfire from returning a member-list from a member-only MUC when the query for the member-list is made before the user has joined the room. RawToast, are you sure Openfire supports the retrieval of member list from room members who have not yet joined the room?

I'm currently running the latest build of Openfire (3.9.3) and I've created a member-only MUC, added two JIDs to the member list, one admin and one member. If I send the following stanza from a JID on the member list

<body rid='551802513' xmlns='http://jabber.org/protocol/httpbind' sid='42731cc7'>
<iq from='t1@server-pc/42731cc7' id='0.38287348952144384' to='test@chatservice.server-pc' type='get' xmlns='jabber:client'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'/>
</query>
</iq>
</body>

Openfire responds with

<body xmlns='http://jabber.org/protocol/httpbind'>
<iq xmlns="jabber:client" type="error" id="0.38287348952144384" from="test@chatservice.server-pc" to="t1@server-pc/42731cc7">
<query xmlns="http://jabber.org/protocol/muc#admin">
<item affiliation="member"/>
</query>
<error code="401" type="auth">
<not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
</body>

even though the user who requested the information has been added to the member-list as shown on the Openfire admin console. Is there any work-around for this?

Details

Assignee

Reporter

Components

Affects versions

Priority

Created May 21, 2010 at 3:18 PM
Updated November 13, 2017 at 5:39 PM