1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-24 18:22:24 -05:00

Add definition of Roles

Add Banned and Allowed Nodes
Clarify Configuration Node in light of above
This commit is contained in:
Steve Kille 2016-10-05 13:22:12 +01:00
parent 5851e7adf2
commit a439fb13e2

View File

@ -278,9 +278,13 @@
<tr><td>Presence</td><td>'urn:xmpp:mix:nodes:presence'</td><td>For publishing information about the availability status of online participants, which may include multiple clients for a single participant.</td></tr> <tr><td>Presence</td><td>'urn:xmpp:mix:nodes:presence'</td><td>For publishing information about the availability status of online participants, which may include multiple clients for a single participant.</td></tr>
<tr><td>Configuration</td><td>'urn:xmpp:mix:nodes:config'</td><td>For storing channel configuration. This information will generally be restricted to authorized users.</td></tr>
<tr><td>Information</td><td>'urn:xmpp:mix:nodes:info'</td><td>For storing general channel information, such as description and avatar. </td></tr> <tr><td>Information</td><td>'urn:xmpp:mix:nodes:info'</td><td>For storing general channel information, such as description and avatar. </td></tr>
<tr><td>Allowed</td><td>'urn:xmpp:mix:nodes:allowed'</td><td>For storing JIDs that are allowed to be channel participants.</td></tr>
<tr><td>Banned</td><td>'urn:xmpp:mix:nodes:banned'</td><td>For storing JIDs that are not allowed to be channel participants. </td></tr>
<tr><td>Configuration</td><td>'urn:xmpp:mix:nodes:config'</td><td>For storing channel configuration. This information will generally be restricted to the channel owners.</td></tr>
</table> </table>
@ -289,8 +293,31 @@
MIX provides mechanisms to allow users to conveniently subscribe to a chosen set of nodes and to unsubscribe to all nodes with a single operation. MIX provides mechanisms to allow users to conveniently subscribe to a chosen set of nodes and to unsubscribe to all nodes with a single operation.
</p> </p>
<p> <p>
The structure of each of the standard nodes is now considered in more detail The structure of each of the standard nodes is now considered in more detail in the rest of this section, after explaining roles.
</p> </p>
<section3 topic="Roles" anchor="roles">
<p>
There are a number of MIX roles for each channel, listed in the following table. Rights will be assigned to the various roles in the channel configuration node.
</p>
<table caption="Channel Roles">
<tr><th>Role</th><th>Membership and Rights</th></tr>
<tr><td>Owners</td><td>These are owners of the list, as specified in the channel configuration node. Only owners are allowed to modify the channel configuration node.</td></tr>
<tr><td>Administrators</td><td>Administrators are defined in the channel configuration node. Administrators have update rights to the Allowed Node and Banned Node, so can control which users may participate in a channel. Administrators will usually be granted additional rights, such as the ability to kick users from a channel. </td></tr>
<tr><td>Participants</td><td>Participants are users listed by JID in the participants node.</td></tr>
<tr><td>Allowed</td><td>Allowed is the set of JIDs that are participants or may be allowed to become participants. A JID is allowed if it does not match entry in the banned node and either it matches an entry in the allowed node or the allowed node is not present. </td></tr>
<tr><td>Anyone</td><td>Any user, including users in the banned node.</td></tr>
</table>
<p>
There will always be at lease one owner and "anyone" will always have role occupants. Other roles may not have any role occupants. Rights are defined in a strictly hierarchical manner, so that for example Owners will always have rights that Administrators have.
</p>
</section3>
<section3 topic="Messages Node" anchor="messages-node"> <section3 topic="Messages Node" anchor="messages-node">
<p>Items in this node will contain a message identified by a unique ID. A MIX implementation SHOULD NOT make messages available for retrieval from this node using pubsub. The recommended approach is that zero history is held in the messages node, and that this node is used for publication only. The recommended approach to retrieve message history is MAM. Users subscribe to this node to receive messages.</p> <p>Items in this node will contain a message identified by a unique ID. A MIX implementation SHOULD NOT make messages available for retrieval from this node using pubsub. The recommended approach is that zero history is held in the messages node, and that this node is used for publication only. The recommended approach to retrieve message history is MAM. Users subscribe to this node to receive messages.</p>
<p>Private Messages are not stored in the messages node.</p> <p>Private Messages are not stored in the messages node.</p>
@ -393,8 +420,40 @@
</item> </item>
</items> </items>
]]></example> ]]></example>
</section3> </section3>
<section3 topic="Allowed" anchor="allowed-node">
<p>
This node represents a list of JIDs that are allowed to become participants. If the allowed node is not present, all JIDs are allowed. The allowed list is always considered in conjunction with the banned list, stored in the banned node. Only Administrators and Owners have write permission to the allowed node and are also the only roles that are allows to subscribe to this node. Each item contains a real bare JID. The following example shows how the allowed list can specify single JIDs and domains.
</p>
<example caption="Allowed Node"><![CDATA[
<items node='urn:xmpp:mix:nodes:allowed'>
<item id='@shakespeare.lit'>
<item id='alice@wonderland.lit'>
</item>
</items>
]]></example>
</section3>
<section3 topic="Banned" anchor="banned-node">
<p>
This node represents a list of JIDs that are explicitly not allowed to become participants. The values in this list take priority over values in the allowed node. Only Administrators and Owners have write permission to the allowed node and are also the only roles that are allows to subscribe to this node. Each item contains a real bare JID.
</p>
<example caption="Banned Node"><![CDATA[
<items node='urn:xmpp:mix:nodes:banned'>
<item id='lear@shakespeare.lit'>
<item id='macbeth@shakespeare.lit'>
</item>
</items>
]]></example>
</section3>
<section3 topic="Configuration Node" anchor="config-node"> <section3 topic="Configuration Node" anchor="config-node">
<p> <p>
The Configuration node holds the configuration of the channel as a single item, named by the date-time of the last update to the configuration. A single item is stored in the node at a time, with previous configuration history accessed by MAM. Users MAY subscribe to the configuration node to get notification of configuration change. The configuration node is optional for a MIX channel. For example, configuration choices could be fixed and not exposed. A subset of the defined configuration options may be used and additional non-standard configuration options may be added. If configuration options to control functionality of the nature described here are provided, the options defined in this standard MUST be used. The following configuration options are provided: The Configuration node holds the configuration of the channel as a single item, named by the date-time of the last update to the configuration. A single item is stored in the node at a time, with previous configuration history accessed by MAM. Users MAY subscribe to the configuration node to get notification of configuration change. The configuration node is optional for a MIX channel. For example, configuration choices could be fixed and not exposed. A subset of the defined configuration options may be used and additional non-standard configuration options may be added. If configuration options to control functionality of the nature described here are provided, the options defined in this standard MUST be used. The following configuration options are provided:
@ -406,17 +465,17 @@
<li>'Owners'. List of bare JIDs with Owner rights as defined in ACL node. When a list is created, the JID creating the list is configured as an owner, unless this attribute is explicitly configured to another value. Owners will generally have full rights to make changes to channel configuration and access control.</li> <li>'Owners'. List of bare JIDs with Owner rights as defined in ACL node. When a list is created, the JID creating the list is configured as an owner, unless this attribute is explicitly configured to another value. Owners will generally have full rights to make changes to channel configuration and access control.</li>
<li>'Administrators'. List of bare JIDs with Administrator rights. An Administrator has rights to make changes to channel access control and configuration as defined in ACL node. An Administrator also has operational right on a channel, such a kicking users out of the channel. These rights are analogous to moderator rights defined in &xep0045;.</li> <li>'Administrators'. List of bare JIDs with Administrator rights. An Administrator has rights to make changes to channel access control and configuration as defined in ACL node. An Administrator also has operational right on a channel, such a kicking users out of the channel. These rights are analogous to moderator rights defined in &xep0045;.</li>
<li>'Outcast'. List of JIDs banned from subscribing to any nodes in the MIX channel. </li>
<li>'End of Life'. The date and time at which the channel will be automatically removed by the server. If this is not set, the channel is permanent.</li> <li>'End of Life'. The date and time at which the channel will be automatically removed by the server. If this is not set, the channel is permanent.</li>
<li>'Nodes Present'. Specifies which nodes are present: "participants"; "presence"; "subject"; "acl". Note that "config" is implicit, and "jidmap" is implied by "participants". </li> <li>'Nodes Present'. Specifies which nodes are present: "participants"; "presence"; "subject"; "information"; "allowed"; "banned". Note that "config" is implicit, and "jidmap" is implied by "participants". </li>
<li>'Message Node Subscription'. Controls who can subscribe to messages node: "participants-only"; "anyone". Users with banned affiliation may not subscribe. Default "participants-only".</li>
<li>'Participants Node Subscription'. Controls who can subscribe to participants node: "participants-only"; "anyone"; "nobody". Users with banned affiliation may not subscribe. Default "participants-only".</li> <li>'Message Node Subscription'. Controls who can subscribe to messages node: "participants"; "allowed"; "anyone". Default "participants".</li>
<li>'Participants Node Subscription'. Controls who can subscribe to participants node: "participants-only"; "anyone"; admins-and-owners" "nobody". Users with banned affiliation may not subscribe. Default "participants-only". Note that this value needs to be restricted to "admins-and-owners" for channels with JID visibility set to a value other than "jid-mandatory-visible".</li> <li>'Participants Node Subscription'. Controls who can subscribe to participants node: "participants"; "allowed"; "anyone"; "nobody". Default "participants".</li>
<li>'Presence Node Subscription'. Controls who can subscribe to presence node: "participants-only"; "anyone"; "nobody". Users with banned affiliation may not subscribe. Default "participants-only".</li>
<li>'Subject Node Subscription'. Controls who can subscribe to subject node: "participants-only"; "anyone"; "nobody". Users with banned affiliation may not subscribe. Default "participants-only".</li> <li>'Presence Node Subscription'. Controls who can subscribe to presence node: "participants"; "allowed"; "anyone"; "nobody". Default "participants".</li>
<li>'Configuration Node Access'. Controls who can subscribe to and has read access configuration node: "participants-only"; "admins-and-owners"; "owners-only"; "anyone"; "nobody". Default "admins-and-owners".</li> <li>'Subject Node Subscription'. Controls who can subscribe to subject node: "participants"; "allowed"; "anyone"; "nobody". Default "participants".</li>
<li>'Information Node Access'. Controls who can subscribe to and has read access acl node: "participants-only"; "admins-and-owners"; "owners-only"; "anyone"; "nobody". Default "participants-only".</li> <li>'Configuration Node Access'. Controls who can subscribe to and has read access configuration node: "participants"; "admins"; "owners"; "nobody". Default "admins".</li>
<li>'Configuration Node Update'. Controls who can modify configuration node: "owners-only"; "admins-and-owners". Default "admins-and-owners".</li>
<li>'Kick Rights'. Controls who can kick users from the channel: "admins"; "owners"; "nobody". Default "admins".</li>
<li>'JID Visibility'. Choice of "jid-hidden", "jid-optionally-visible", "jid-mandatory-visible". </li> <li>'JID Visibility'. Choice of "jid-hidden", "jid-optionally-visible", "jid-mandatory-visible". </li>
<li>'Open Presence'. If selected, any client may register presence. If not selected, only clients with bare JID in the participants list may register presence.</li> <li>'Open Presence'. If selected, any client may register presence. If not selected, only clients with bare JID in the participants list may register presence.</li>