Annotate

spec/scansion/muc_affiliation_notify.scs @ 12642:9061f9621330

Switch to a new role-based authorization framework, removing is_admin() We began moving away from simple "is this user an admin?" permission checks before 0.12, with the introduction of mod_authz_internal and the ability to dynamically change the roles of individual users. The approach in 0.12 still had various limitations however, and apart from the introduction of roles other than "admin" and the ability to pull that info from storage, not much actually changed. This new framework shakes things up a lot, though aims to maintain the same functionality and behaviour on the surface for a default Prosody configuration. That is, if you don't take advantage of any of the new features, you shouldn't notice any change. The biggest change visible to developers is that usermanager.is_admin() (and the auth provider is_admin() method) have been removed. Gone. Completely. Permission checks should now be performed using a new module API method: module:may(action_name, context) This method accepts an action name, followed by either a JID (string) or (preferably) a table containing 'origin'/'session' and 'stanza' fields (e.g. the standard object passed to most events). It will return true if the action should be permitted, or false/nil otherwise. Modules should no longer perform permission checks based on the role name. E.g. a lot of code previously checked if the user's role was prosody:admin before permitting some action. Since many roles might now exist with similar permissions, and the permissions of prosody:admin may be redefined dynamically, it is no longer suitable to use this method for permission checks. Use module:may(). If you start an action name with ':' (recommended) then the current module's name will automatically be used as a prefix. To define a new permission, use the new module API: module:default_permission(role_name, action_name) module:default_permissions(role_name, { action_name[, action_name...] }) This grants the specified role permission to execute the named action(s) by default. This may be overridden via other mechanisms external to your module. The built-in roles that developers should use are: - prosody:user (normal user) - prosody:admin (host admin) - prosody:operator (global admin) The new prosody:operator role is intended for server-wide actions (such as shutting down Prosody). Finally, all usage of is_admin() in modules has been fixed by this commit. Some of these changes were trickier than others, but no change is expected to break existing deployments. EXCEPT: mod_auth_ldap no longer supports the ldap_admin_filter option. It's very possible nobody is using this, but if someone is then we can later update it to pull roles from LDAP somehow.
author Matthew Wild <mwild1@gmail.com>
date Wed, 15 Jun 2022 12:15:01 +0100
parent 9602:b250ffdfae3f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9599
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 # MUC: Notification of affiliation changes of non-occupants
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 [Client] Romeo
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 jid: user@localhost
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 password: password
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 [Client] Juliet
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 jid: user2@localhost
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 password: password
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 [Client] Rosaline
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 jid: user3@localhost
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 password: password
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 -----
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 Romeo connects
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 <presence to="room@conference.localhost/Romeo">
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 <x xmlns="http://jabber.org/protocol/muc"/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 </presence>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 <presence from='room@conference.localhost/Romeo'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 <x xmlns='http://jabber.org/protocol/muc#user'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 <status code='201'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 <item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 <status code='110'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 </x>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 </presence>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 <message type='groupchat' from='room@conference.localhost'><subject/></message>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 # Submit config form
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 <iq id='config1' to='room@conference.localhost' type='set'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 <query xmlns='http://jabber.org/protocol/muc#owner'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 <x xmlns='jabber:x:data' type='submit'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 <field var='FORM_TYPE'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 <value>http://jabber.org/protocol/muc#roomconfig</value>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 </field>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 </x>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 </query>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 <iq id="config1" from="room@conference.localhost" type="result">
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 # Promote Juliet to member
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 <iq id='member1' to='room@conference.localhost' type='set'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 <query xmlns='http://jabber.org/protocol/muc#admin'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 <item affiliation='member' jid="${Juliet's JID}" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 </query>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 # Juliet is not in the room, so an affiliation change message is received
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 <message from='room@conference.localhost'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 <x xmlns='http://jabber.org/protocol/muc#user'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 <item jid="${Juliet's JID}" affiliation='member' xmlns='http://jabber.org/protocol/muc#user'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 </x>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 </message>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 # The affiliation change succeeded
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 <iq from='room@conference.localhost' id='member1' type='result'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 # Juliet connects, and joins the room
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 Juliet connects
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 Juliet sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 <presence to="room@conference.localhost/Juliet">
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 <x xmlns="http://jabber.org/protocol/muc"/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 </presence>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 Juliet receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 <presence from="room@conference.localhost/Romeo" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 Juliet receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 <presence from="room@conference.localhost/Juliet" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 Juliet receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 <message type='groupchat' from='room@conference.localhost'><subject/></message>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 <presence from="room@conference.localhost/Juliet" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 # To check the status of the room is as expected, Romeo requests the member list
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 <iq id='member3' to='room@conference.localhost' type='get'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 <query xmlns='http://jabber.org/protocol/muc#admin'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 <item affiliation='member'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 </query>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 <iq from='room@conference.localhost' type='result' id='member3'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 <query xmlns='http://jabber.org/protocol/muc#admin'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 <item affiliation='member' jid="${Juliet's JID}" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 </query>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 # Romeo grants membership to Rosaline, who is not in the room
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
113 <iq id='member2' to='room@conference.localhost' type='set'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
114 <query xmlns='http://jabber.org/protocol/muc#admin'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
115 <item affiliation='member' jid="${Rosaline's JID}" />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 </query>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 </iq>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 <message from='room@conference.localhost'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 <x xmlns='http://jabber.org/protocol/muc#user'>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122 <item jid="${Rosaline's JID}" affiliation='member' xmlns='http://jabber.org/protocol/muc#user'/>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 </x>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 </message>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 Romeo receives:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 <iq type='result' id='member2' from='room@conference.localhost' />
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129 Romeo sends:
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 <message type="groupchat" to="room@conference.localhost">
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 <body>Finished!</body>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132 </message>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133
9602
b250ffdfae3f muc_affiliation_notify.scs: Remove trailing whitespace
Matthew Wild <mwild1@gmail.com>
parents: 9599
diff changeset
134 Juliet receives:
9599
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135 <message type="groupchat" from="room@conference.localhost/Romeo">
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 <body>Finished!</body>
5a2135964ed3 MUC: Announce affiliation changes for JIDs that are not in the room
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 </message>