added more examples of the reason element

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1938 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2008-06-10 16:37:46 +00:00
parent e9c3548c44
commit 4be0c6c7db
1 changed files with 162 additions and 3 deletions

View File

@ -49,6 +49,16 @@
</schemaloc>
<registry/>
&stpeter;
<revision>
<version>1.24pre1</version>
<date>in progress, last updated 2008-06-10</date>
<initials>psa</initials>
<remark>
<ul>
<li>Added more examples of the reason element.</li>
</ul>
</remark>
</revision>
<revision>
<version>1.23</version>
<date>2008-01-14</date>
@ -2381,8 +2391,20 @@
<p>If a moderator attempts to kick himself, the service MAY deny the request and return a &conflict; error to the sender. (Although the act of kicking oneself may seem odd, it is common in IRC as a way of apologizing for one's actions in the room.)</p>
</section2>
<section2 topic='Granting Voice to a Visitor' anchor='grantvoice'>
<p>In a moderated room, a moderator may want to manage who does and does not have "voice" in the room (i.e., the ability to send messages to all occupants). Voice is granted based on the visitor's room nickname, which the service will convert into the visitor's full JID internally. The moderator grants voice to a visitor by changing the visitor's role to "participant" (the &lt;reason/&gt; element is optional):</p>
<p>In a moderated room, a moderator may want to manage who does and does not have "voice" in the room (i.e., the ability to send messages to all occupants). Voice is granted based on the visitor's room nickname, which the service will convert into the visitor's full JID internally. The moderator grants voice to a visitor by changing the visitor's role to "participant".</p>
<example caption='Moderator Grants Voice to a Visitor'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='voice1'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item nick='thirdwitch'
role='participant'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL:</p>
<example caption='Moderator Grants Voice to a Visitor (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='voice1'
to='darkcave@macbeth.shakespeare.lit'
@ -2430,6 +2452,20 @@
<item nick='thirdwitch'
role='visitor'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL:</p>
<example caption='Moderator Revokes Voice from a Visitor (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='voice2'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item nick='thirdwitch'
role='visitor'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST then inform the moderator of success:</p>
@ -2628,6 +2664,18 @@
<section2 topic='Banning a User' anchor='ban'>
<p>An admin or owner can ban one or more users from a room. The ban MUST be performed based on the occupant's bare JID. In order to ban a user, an admin MUST change the user's affiliation to "outcast".</p>
<example caption='Admin Bans User'><![CDATA[
<iq from='kinghenryv@shakespeare.lit/throne'
id='ban1'
to='southampton@henryv.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='outcast'
jid='earlofcambridge@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Admin Bans User (With a Reason)'><![CDATA[
<iq from='kinghenryv@shakespeare.lit/throne'
id='ban1'
to='southampton@henryv.shakespeare.lit'
@ -2774,6 +2822,20 @@
<item affiliation='member'
jid='hag66@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Admin Grants Membership (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='member1'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'
jid='hag66@shakespeare.lit'>
<reason>A worthy witch indeed!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST add the user to the member list and then inform the admin of success:</p>
@ -2823,6 +2885,20 @@
<item affiliation='none'
jid='hag66@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Admin Revokes Membership (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='member2'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='none'
jid='hag66@shakespeare.lit'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST remove the user from the member list and then inform the moderator of success:</p>
@ -2995,6 +3071,20 @@
<item nick='thirdwitch'
role='moderator'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Admin Grants Moderator Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='mod1'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item nick='thirdwitch'
role='moderator'>
<reason>A worthy witch indeed!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST add the user to the moderator list and then inform the admin of success:</p>
@ -3030,6 +3120,20 @@
<item nick='thirdwitch'
role='participant'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Admin Revokes Moderator Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='mod2'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item nick='thirdwitch'
role='participant'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST remove the user from the moderator list and then inform the admin of success:</p>
@ -3868,6 +3972,20 @@
<item affiliation='owner'
jid='hecate@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Owner Grants Ownership Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='owner1'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='owner'
jid='hecate@shakespeare.lit'>
<reason>A worthy witch indeed!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST add the user to the owner list and then inform the owner of success:</p>
@ -3917,6 +4035,20 @@
<item affiliation='admin'
jid='hecate@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Owner Revokes Ownership Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='owner2'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='admin'
jid='hecate@shakespeare.lit'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
]]></example>
<p>A service MUST NOT allow an owner to revoke his or her own ownership privileges if there are no other owners; if an owner attempts to do this, the service MUST return a &conflict; error to the owner. However, a service SHOULD allow an owner to revoke his or her own ownership privileges if there are other owners.</p>
@ -4031,6 +4163,20 @@
<item affiliation='admin'
jid='wiccarocks@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Owner Grants Admin Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='admin1'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='admin'
jid='wiccarocks@shakespeare.lit'>
<reason>A worthy witch indeed!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST add the user to the admin list and then inform the owner of success:</p>
@ -4080,6 +4226,20 @@
<item affiliation='member'
jid='wiccarocks@shakespeare.lit'/>
</query>
</iq>
]]></example>
<p>The &lt;reason/&gt; element is OPTIONAL.</p>
<example caption='Owner Revokes Administrative Privileges (With a Reason)'><![CDATA[
<iq from='crone1@shakespeare.lit/desktop'
id='admin2'
to='darkcave@macbeth.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='member'
jid='wiccarocks@shakespeare.lit'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
]]></example>
<p>The service MUST remove the user from the admin list and then inform the owner of success:</p>
@ -5124,8 +5284,7 @@ xmpp:darkcave@macbeth.shakespeare.lit?invite;jid=hecate@shakespeare.lit;password
</tr>
</table>
<p>Note: Because MUC roomnicks follow the Resourceprep profile of stringprep, they are allowed to contain a space character, whereas IRC nicknames do not. Although a given client MAY support quotation characters for this purpose (resulting in commands such as '/ban "king lear" insanity is no defense'), most common quotation characters (such as " and ') are also allowed by Resourceprep, thus leading to added complexity and potential problems with quotation of roomnicks that contain both spaces and quotation characters. Therefore it is NOT RECOMMENDED for Jabber clients to support IRC-style shortcut commands with roomnicks that contain space characters.</p>
<p>Note: Many Jabber clients also implement a '/me ' command, where the command is followed by a verb or verb phrase (e.g., '/me laughs'). This command does not result in any MUC or IRC protocol action and is therefore not shown in the foregoing table. Instead, the message is sent as-is (e.g., &lt;body&gt;/me laughs&lt;/body&gt;) and the receiving client performs string-matching on the character data of the &BODY; element to determine if the message begins with the string '/me '; if it does the receiving client will show the message in a special format, usually italicized text sometimes prepended by the "*" character:</p>
<p style='margin-left: 5%'><em>* stpeter laughs</em></p>
<p>Note: Many Jabber clients also implement a '/me ' command as described in &xep0237;. This command does not result in any MUC or IRC protocol action and is therefore not shown in the foregoing table.</p>
</section3>
</section2>
</section1>