<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>HelpOnGroups</title></articleinfo><section><title>Groups</title><para><!--The macro TableOfContents doesn't work with the DocBook formatter.--> A group is a simple data structure that maps a group name to a set of group member names. It can be used e.g. within ACL definitions to specify groups of users. </para><para>The group name usually is something like <code>EditorGroup</code> (some word ending with <code>Group</code>). This default pattern can be changed (e.g. for non-english languages etc.), see page_group_regex on <ulink url="http://id3.org/HelpOnGroups/HelpOnConfiguration#">HelpOnConfiguration</ulink>. </para><para>The group members are just arbitrary names (unicode strings). Note that groups are not limited to <emphasis>user</emphasis> names, you can also define a group of your favourite wiki pages (but you would need some code that uses that group in a somehow useful way). </para><section><title>Wiki Groups</title><section><title>Defining</title><para>You can create a group definition for a group named <code>EditorGroup</code> by creating a page called <code>EditorGroup</code> with this content: </para><screen><![CDATA[#format wiki
These are people that are trusted to edit pages on this wiki:
 * JaneDoe
  * this is ignored
 * JoeDoe
 * [[John Smith]]]]></screen><para>Important: </para><itemizedlist><listitem><para>Group members have to be on an unordered first-level list. </para></listitem><listitem><para>If link markup is used, the link target will be added as member. Please only use rather simple link markup. </para></listitem><listitem><para>Everything else (other text, second-level items, etc.) is ignored. </para></listitem><listitem><para>You have to explicitly <emphasis>use</emphasis> the group (there are no hardcoded group names in moin), see below. </para></listitem></itemizedlist></section><section><title>Usage</title><para>Use groups to define permissions for those users on your wiki (see <ulink url="http://id3.org/HelpOnGroups/HelpOnAccessControlLists#">HelpOnAccessControlLists</ulink>).   </para><para>For example, you could have this in your wiki config: </para><screen><![CDATA[    acl_rights_default = u'EditorGroup:read,write,delete,revert All:read']]></screen><para>Of course you can also use the group in on-page ACLs: </para><screen><![CDATA[#acl EditorGroup:read,write,delete,revert All:read']]></screen></section><section><title>Protecting them</title><para>If your default ACL allows writing for everyone, it is a good idea to protect critical group definition pages with some more restrictive ACL. </para><para>E.g. on a group definition page <code>AdminGroup</code>: </para><screen><![CDATA[#acl AdminGroup:read,write,revert All:read
#format wiki
Members of this group will get admin rights. If you think you should be in this group, contact one of its members to add you.
 * SomeAdmin
 * AnotherAdmin]]></screen><para>As you see: only members of this group may write to the group definition page (and of course everyone who gets write rights from acl_rights_before in the wiki config). </para></section><section><title>Using groups within groups</title><para>You can also add names of other groups as group members, that is the same as including all their members directly. </para></section></section><section><title>Other ways to define groups / access group definitions</title><para>MoinMoin can also use group definitions from other sources, but this needs to be configured in your wiki config. See <code>groups</code> on <ulink url="http://id3.org/HelpOnGroups/HelpOnConfiguration#">HelpOnConfiguration</ulink>. </para></section></section></article>