File

spec/scansion/muc_whois_anyone_member.scs @ 11906:ba3344926e18

MUC: Add option to include form in registration query This was originally not done based on my interpretation of XEP-0045. Today's reading, however, revealed that it actually says the result > SHOULD contain **at least** a <username/> element (emphasis mine) I take this to mean that including a form **is** allowed (and I think this is sensible). Tigase already includes the form I believe. I've gated the new behaviour behind a (default off) option, because it hasn't been tested for compatibility with clients. My primary desire for it is in Snikket, where the clients will be tested to ensure compatibility with this. I don't anticipate that (m)any clients would break, so maybe after 0.12 we can experiment with enabling it by default and eventually remove the option.
author Matthew Wild <mwild1@gmail.com>
date Mon, 15 Nov 2021 16:11:03 +0000
parent 11712:d117b92fd8e4
line wrap: on
line source

# MUC: Allow members to fetch the affiliation lists in open non-anonymous rooms

[Client] Romeo
	jid: 4e2pm7er@localhost
	password: password

[Client] Juliet
	jid: qnjm5253@localhost
	password: password

[Client] Random
	jid: iqizbcus@localhost
	password: password

-----

Romeo connects

Juliet connects

Random connects

# Romeo joins and creates the MUC
Romeo sends:
	<presence to="mcgczevx@conference.localhost/Romeo">
		<x xmlns="http://jabber.org/protocol/muc"/>
	</presence>

Romeo receives:
	<presence from="mcgczevx@conference.localhost/Romeo">
		<x xmlns="http://jabber.org/protocol/muc#user" scansion:strict="false">
			<item affiliation="owner" jid="${Romeo's full JID}" role="moderator"/>
			<status code="110"/>
			<status code="201"/>
		</x>
	</presence>

Romeo receives:
	<message from="mcgczevx@conference.localhost" type="groupchat">
		<subject/>
	</message>

# and configures it for private chat
Romeo sends:
	<iq type="set" id="17fb8e7e-c75e-447c-b86f-3f1df8f507c4" to="mcgczevx@conference.localhost">
		<query xmlns="http://jabber.org/protocol/muc#owner">
			<x type="submit" xmlns="jabber:x:data">
				<field var="FORM_TYPE">
					<value>http://jabber.org/protocol/muc#roomconfig</value>
				</field>
				<field var="muc#roomconfig_membersonly">
					<value>1</value>
				</field>
				<field var="muc#roomconfig_whois">
					<value>anyone</value>
				</field>
			</x>
		</query>
	</iq>

Romeo receives:
	<iq from="mcgczevx@conference.localhost" id="17fb8e7e-c75e-447c-b86f-3f1df8f507c4" type="result"/>

Romeo receives:
	<message from="mcgczevx@conference.localhost" type="groupchat">
		<x xmlns="http://jabber.org/protocol/muc#user" scansion:strict="false">
			<status code="104"/>
			<status code="172"/>
		</x>
	</message>

# Juliet is made a member
Romeo sends:
	<iq type="set" id="32d81574-e1dc-4221-b36d-4c44debb7c19" to="mcgczevx@conference.localhost">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="member" jid="${Juliet's JID}"/>
		</query>
	</iq>

# Juliet can read affiliations
Juliet sends:
	<iq type="get" id="32d81574-e1dc-4221-b36d-4c44debb7c19" to="mcgczevx@conference.localhost">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="owner"/>
		</query>
	</iq>

Juliet receives:
	<iq from="mcgczevx@conference.localhost" id="32d81574-e1dc-4221-b36d-4c44debb7c19" type="result">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="owner" jid="${Romeo's JID}"/>
		</query>
	</iq>

Juliet sends:
	<iq type="get" id="05e3fe30-976f-4919-8221-ca1ac333eb9b" to="mcgczevx@conference.localhost">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="member"/>
		</query>
	</iq>

Juliet receives:
	<iq from="mcgczevx@conference.localhost" id="05e3fe30-976f-4919-8221-ca1ac333eb9b" type="result">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="member" jid="${Juliet's JID}"/>
		</query>
	</iq>

# Others can't read affiliations
Random sends:
	<iq type="get" id="df1195e1-7ec8-4102-8561-3e3a1d942adf" to="mcgczevx@conference.localhost">
		<query xmlns="http://jabber.org/protocol/muc#admin">
			<item affiliation="owner"/>
		</query>
	</iq>

Random receives:
	<iq from="mcgczevx@conference.localhost" id="df1195e1-7ec8-4102-8561-3e3a1d942adf" type="error"/>


Juliet disconnects

Romeo disconnects

Random disconnects

# recording ended on 2021-07-23T12:09:48Z