Merge 0.11->trunk
authorMatthew Wild <mwild1@gmail.com>
Wed, 31 Oct 2018 14:34:35 +0000
changeset 9610 cb684a0ded2a
parent 9604 ae0aca2c0ebb (current diff)
parent 9609 07e3b8e60a6c (diff)
child 9611 2a42b72468ca
Merge 0.11->trunk
--- a/plugins/muc/util.lib.lua	Wed Oct 31 13:17:02 2018 +0000
+++ b/plugins/muc/util.lib.lua	Wed Oct 31 14:34:35 2018 +0000
@@ -57,7 +57,7 @@
 
 function _M.only_with_min_role(role)
 	local min_role_value = _M.valid_roles[role];
-	return function (nick, occupant)
+	return function (nick, occupant) --luacheck: ignore 212/nick
 		if _M.valid_roles[occupant.role or "none"] >= min_role_value then
 			return true;
 		end
--- a/spec/scansion/issue1224.scs	Wed Oct 31 13:17:02 2018 +0000
+++ b/spec/scansion/issue1224.scs	Wed Oct 31 14:34:35 2018 +0000
@@ -1,4 +1,4 @@
-# MUC: Room registration and reserved nicknames
+# MUC: Handle affiliation changes from buggy clients
 
 [Client] Romeo
 	jid: user@localhost
@@ -53,6 +53,13 @@
 	</iq>
 
 Romeo receives:
+	<message from='room@conference.localhost'>
+		<x xmlns='http://jabber.org/protocol/muc#user'>
+			<item jid="${Juliet's JID}" affiliation='member' xmlns='http://jabber.org/protocol/muc#user'/>
+		</x>
+	</message>
+
+Romeo receives:
 	<iq from='room@conference.localhost' id='member1' type='result'/>
 
 # Juliet connects, and joins the room
--- a/spec/scansion/muc_affiliation_notify.scs	Wed Oct 31 13:17:02 2018 +0000
+++ b/spec/scansion/muc_affiliation_notify.scs	Wed Oct 31 14:34:35 2018 +0000
@@ -131,7 +131,7 @@
 		<body>Finished!</body>
 	</message>
 
-Juliet receives: 
+Juliet receives:
 	<message type="groupchat" from="room@conference.localhost/Romeo">
 		<body>Finished!</body>
 	</message>
--- a/spec/scansion/muc_register.scs	Wed Oct 31 13:17:02 2018 +0000
+++ b/spec/scansion/muc_register.scs	Wed Oct 31 14:34:35 2018 +0000
@@ -57,6 +57,13 @@
 	</iq>
 
 Romeo receives:
+	<message from='room@conference.localhost'>
+		<x xmlns='http://jabber.org/protocol/muc#user'>
+			<item jid="${Juliet's JID}" affiliation='member' />
+		</x>
+	</message>
+
+Romeo receives:
 	<iq from='room@conference.localhost' id='member1' type='result'/>
 
 # Juliet connects, and joins the room
@@ -186,6 +193,15 @@
 Juliet receives:
 	<iq type='result' from='room@conference.localhost' id='unreg1'/>
 
+# Romeo is notified of Juliet's sad decision
+
+Romeo receives:
+	<message from='room@conference.localhost'>
+		<x xmlns='http://jabber.org/protocol/muc#user' scansion:strict='true'>
+			<item jid="${Juliet's JID}" />
+		</x>
+	</message>
+
 # Rosaline attempts once more to sneak into the room, disguised as Juliet
 
 Rosaline sends:
@@ -236,6 +252,15 @@
 		</x>
 	</presence>
 
+# An out-of-room affiliation change is received for Juliet
+
+Romeo receives:
+	<message from='room@conference.localhost'>
+		<x xmlns='http://jabber.org/protocol/muc#user'>
+			<item jid="${Juliet's JID}" affiliation='member' />
+		</x>
+	</message>
+
 Romeo receives:
 	<iq type='result' id='member1' from='room@conference.localhost' />