<?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>ПомощьПоСпискамДоступа</title></articleinfo><section><title>Списки доступа</title><para>Списки доступа (access control lists, ACL) позволяют контролировать права пользователей или групп (которые можно произвольно задавать, см. <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0%D0%BC#">ПомощьПоГруппам</ulink>). Можно определить права доступа как для всей вики, так и для отдельных страниц. </para><para>Используя права доступа, можно легко сделать так, чтобы анонимный пользователь имел возможность просматривать, но не редактировать страницы. Можно создавать страницы, которые недоступны публично до тех пор, пока они не готовы к публикации. Можно настроить списки доступа таким образом, что возможность изменять страницы будут иметь только отдельные пользователи. </para><para>Для использования списков доступа необходимо или иметь доступ к <code>wikiconfig.py</code> (для установки глобальных настроек), или иметь привилегию <code>admin</code> («администрирование») на странице, где необходимо задать (или изменить) списки доступа. </para><section><title>Права доступа и группы</title><section><title>Права доступа</title><para>При задании списков доступа можно указывать следующие привилегии: </para><itemizedlist><listitem><para><emphasis>read</emphasis> (чтение) — пользователи имеют возможность читать страницу и просматривать прикреплённые файлы. </para></listitem><listitem><para><emphasis>write</emphasis> (запись) — пользователи имеют возможность изменять страницу и загружать прикреплённые файлы. </para></listitem><listitem><para><emphasis>delete</emphasis> (удаление) — пользователи имеют возможность удалять страницу и прикреплённые к ней файлы. </para></listitem><listitem><para><emphasis>revert</emphasis> (откат к более ранней версии) — пользователи имеют возможность восстанавливать более раннюю версию страницы. </para></listitem><listitem><para><emphasis>admin</emphasis> (администрирование) — пользователи имеют возможность изменять списки доступа путём правки директивы «#acl», в том числе, давать и отзывать привилегию «<code>admin</code>» для других пользователей. </para></listitem></itemizedlist><para>Не существует отдельной привилегии для переименования страниц. Для переименования страницы пользователю необходимо иметь привилегии <code>read</code>, <code>write</code> и <code>delete</code>. </para><para>Анонимные (не представившиеся системе) пользователи не могут ни удалять, ни переименовывать страницы (даже если соответствующая привилегия указана для группы <code>All</code>). </para><para>Прикреплённые файлы наследуют списки доступа страницы, к которой они прикреплены. </para><para>Для добавления или изменения списков доступа на странице необходимо иметь на ней привилегию <code>admin</code>. Если Вы — администратор вики, то Вы можете установить для себя привилегию <code>admin</code> для всей вики (см. раздел <link linkend="configuration">по конфигурированию на уровне сайта</link> ниже). </para><para>Допустимые привилегии указаны в параметре <code>acl_rights_valid</code> конфигурационного файла <code>wikiconfig.py</code>. Например, в нём можно указать все привилегии кроме <code>delete</code> для предотвращения удаления страниц (см. раздел <link linkend="configuration">по конфигурированию на уровне сайта</link> ниже). </para></section><section><title>Группы</title><para>Права доступа могут указываться для отдельных учётных записей, групп (задаваемых в виде страниц на вики с перечислением входящих в них участников) или специальных групп (системных групп, имеющих предопределённый смысл). Далее используются следующие обозначения: </para><itemizedlist><listitem><para><emphasis>ИмяПользователя</emphasis> — указанный субъект совпадает с именем учётной записи, действует только в случае полного совпадения (в том числе регистра). </para></listitem><listitem><para><emphasis>НекаяГруппа</emphasis> — имя группы, определённой пользователем (подробнее см. <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0%D0%BC#">ПомощьПоГруппам</ulink>). </para></listitem><listitem><para><emphasis>Trusted</emphasis> (доверяемые) — специальная группа, содержащая пользователей, аутентифицировавшихся доверяемым способом аутентификации. </para></listitem><listitem><para><emphasis>Known</emphasis> (известные) — специальная группа, содержащая всех аутентифицировавшихся пользователей. </para></listitem><listitem><para><emphasis>All</emphasis> (все) — специальная группа, означающая «кто угодно» (то есть, как представившихся системе, так и анонимных пользователей). </para></listitem></itemizedlist></section></section><section><title>Синтаксис и примеры использования</title><para>Управление списками доступа в <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9C%D0%BE%D0%B9%D0%BD%D0%9C%D0%BE%D0%B9%D0%BD#">МойнМойн</ulink> выполняется путём редактирования строки директивы на необходимой странице. Списки доступа должны быть на первой строке страницы (не считая комментариев) и иметь следующий синтаксис: </para><screen><![CDATA[#acl [+-]ИмяПользователя[,НекаяГруппа,...]:[привилегия[,привилегия,...]] [[+-]ДругойПользователь:...] [[+-]Trusted:...] [[+-]Known:...] [[+-]All:...] [Default]]]></screen><para>, где «ИмяПользователя», «НекаяГруппа», «привилегия» (возможность читать, писать, удалять, откатывать, администрировать) определены выше. </para><para>«Default» — специальная запись, которая вставляет в необходимом значение параметра <code>acl_rights_default</code>. Это описано подробнее в разделе «<link linkend="Default">списки доступа по умолчанию</link>» далее. </para><para>Использование пробелов между именем и привилегиями недопустимо. Например, «<code>All: write,read</code>» <emphasis>не является</emphasis> корректной строкой, задающей списки доступа. </para><para>Простой пример: </para><screen><![CDATA[#acl АлександрПривалов:read,write,delete,revert,admin ГруппаРедакторы:read,write,revert All:read]]></screen><para>В данном примере пользователю <code>АлександрПривалов</code> разрешены запись и чтение, наряду с другими действиями, любому же, включённому в группу <code>ГруппаРедакторы</code> доступны чтение, запись и откат данной страницы. Все прочие пользователи имеют возможность только читать её (учтите, что настройки прав доступа сайта, указанные в <code>wikiconfig.py</code>, имеют более высокий приоритет по сравнению с правами доступа, указанными на странице). См. также «примеры использования» ниже. </para><para><anchor id="configuration"/> </para></section><section><title>Конфигурация в масштабе всего сайта</title><para>Представленные далее параметры конфигурации используются для настройки списков доступа в рамках всей вики, и устанавливаются они в файле <code>wikiconfig.py</code> (также см. <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9A%D0%B0%D0%BA%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D1%82%D1%8C#">КакНастраивать</ulink>). </para><informaltable><tgroup cols="3"><colspec colname="col_0"/><colspec colname="col_1"/><colspec colname="col_2"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para> <emphasis role="strong">Параметр</emphasis> </para></entry><entry colsep="1" rowsep="1"><para> <emphasis role="strong">Значение по умолчанию</emphasis> </para></entry><entry colsep="1" rowsep="1"><para> <emphasis role="strong">Описание</emphasis> </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> <code>acl_rights_before</code>                  </para></entry><entry colsep="1" rowsep="1"><para> <code>u&quot;&quot;</code>                       </para></entry><entry colsep="1" rowsep="1"><para> Применяется <emphasis role="strong">до</emphasis> параметров доступа страницы или параметров доступа по умолчанию </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> <code>acl_rights_after</code>                   </para></entry><entry colsep="1" rowsep="1"><para> <code>u&quot;&quot;</code>                       </para></entry><entry colsep="1" rowsep="1"><para> Применяется <emphasis role="strong">после</emphasis> параметров доступа страницы или параметров доступа по умолчанию </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> <code>acl_rights_default</code>                 </para></entry><entry colsep="1" rowsep="1"><para> <code>u&quot;Trusted:read,write,delete,revert \</code></para><para><code>Known:read,write,delete,revert \</code></para><para><code>All:read,write&quot;</code> </para></entry><entry colsep="1" rowsep="1"><para> Используется <emphasis role="strong">только</emphasis> в случае, если <emphasis role="strong">других</emphasis> списков доступа для данной страницы <emphasis role="strong">не установлено</emphasis> </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> <code>acl_rights_valid</code>                   </para></entry><entry colsep="1" rowsep="1"><para> <code>[&quot;read&quot;, </code> <code>&quot;write&quot;, </code> <code>&quot;delete&quot;, </code> <code>&quot;revert&quot;, </code> <code>&quot;admin&quot;]</code> </para></entry><entry colsep="1" rowsep="1"><para> Список допустимых привилегий на вики. Например, можно удалить привилегию <code>delete</code> (удаление) для предотвращения удаления страниц кем-либо </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> <code>acl_hierarchic</code>                     </para></entry><entry colsep="1" rowsep="1"><para> <code>False</code>                    </para></entry><entry colsep="1" rowsep="1"><para> Управляет использованием иерархических списков доступа, см. <link linkend="hierarchical">соответствующий раздел далее</link> </para></entry></row></tbody></tgroup></informaltable><para>Теперь рассмотрим семантику каждого из параметров. </para><itemizedlist><listitem><para>Списки доступа, указанные в параметре <code>acl_rights_before</code>, имеют наивысший приоритет (ввиду того, что алгоритм применения списков доступа применяет первую подходящую запись и того, что данные списки доступа просматриваются в первую очередь). Данный параметр обычно используется для настройки параметров доступа администраторов и редакторов. </para></listitem><listitem><para>Списки доступа, указанные в параметре <code>acl_rights_default</code> используются в случае, если никаких отдельных списков доступа для страницы не задано. Это равноценно указанию списков доступа, заданных в этом параметре, на странице. Эти же правила добавляются в месте использования параметра <code>Default</code> в списках доступа страницы. </para></listitem><listitem><para>Списки доступа, указанные в параметре <code>acl_rights_after</code> используются для низкоприоритетных настроек, которые не хотелось бы забывать (например, предоставление доступа на чтение любому пользователю). </para></listitem></itemizedlist><para>Фактически, данные правила применяются до, вместо (или во время) и после обработки списков доступа страницы. </para><para>Префикс «<code>u</code>» перед строковыми литералами означает, что это Unicode-строки, и является обязательным. </para></section><section><title>Обработка списков доступа</title><para>Данный раздел описывает процесс применения списков доступа странице, содержащей их. Аналогично применяются для всей вики списки доступа, указанные в конфигурации (см. <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9A%D0%B0%D0%BA%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D1%82%D1%8C#">КакНастраивать</ulink>).  </para><section><title>Процесс обработки элементов</title><para>Когда пользователь пытается получить доступ к странице с установленными списками доступа, записи в списке обрабатываются в порядке их нахождения. Первая запись, которой удовлетворяет пользователь, определяет, может ли пользователь получить доступ или нет, и обработка на этом завершается. В соответствии с этим алгоритмом, рекомендуется упорядочивать записи в списках доступа в следующем порядке: </para><orderedlist numeration="arabic"><listitem><para>Отдельные имена учётных записей </para></listitem><listitem><para>Группы (от частных к более общим) </para></listitem><listitem><para><code>Trusted</code> </para></listitem><listitem><para><code>Known</code> </para></listitem><listitem><para><code>All</code> </para></listitem></orderedlist><para>Например, ниже рассмотрен случай, когда пользователь <code>КакойТоПользователь</code> получает привилегии на чтение и запись ресурсов, у которых установлены приведённые списки доступа, члены группы <code>КакаяТоГруппа</code> получают возможность также администрировать данные ресурсы, все же остальные могут только их читать. Важно отметить, что в случае принадлежности пользователя <code>КакойТоПользователь</code> группе <code>КакаяТоГруппа</code> он не получит привилегию администрирования. </para><screen><![CDATA[#acl КакойТоПользователь:read,write КакаяТоГруппа:read,write,admin All:read]]></screen></section><section><title>Префиксы-модификаторы</title><para>В целях увеличения гибкости также имеются модификаторы параметров доступа: префиксы «+» и «-». В случае их использования обработка элементов останавливается только в том случае, когда в данном элементе указана соответствующая привилегия (помимо соответствия пользователя). В противном случае, обработка списка продолжается. При использовании в подошедшем элементе модификатора «+» доступ предоставляется, при использовании модификатора «-» — запрещается. </para><para>Например, в предположении принадлежности пользователя <code>КакойТоПользователь</code> группе <code>КакаяТоГруппа</code> предыдущий пример можно переписать следующим образом:  </para><screen><![CDATA[#acl -КакойТоПользователь:admin КакаяТоГруппа:read,write,admin All:read]]></screen><para>В случае запроса привилегии на администрирование пользователем <code>КакойТоПользователь</code>, ему будет отказано и обработка списков доступа остановится. Во всех других случаях (другой пользователь или другая привилегия), обработка продолжится. </para><screen><![CDATA[#acl +All:read -КакойТоПользователь:admin КакаяТоГруппа:read,write,admin]]></screen><para><code>+All:read</code> позволяет любому пользователю получить доступ на чтение, после чего обработка списков доступа остановится. Во всех прочих случаях (при запросе иных привилегий) обработка продолжится. Если будет запрошена административная привилегия для пользователя <code>КакойТоПользователь</code>, в ней будет отказано и обработка прекратится. Во всех прочих случаях обработка продолжится. В конце концов, если пользователь, состоящий в группе <code>КакаяТоГруппа</code>, запрашивает привилегию ,то он получит её, если она есть среди <code>read,write,admin</code>, и в ней будет отказано в противном случае. Все другие пользователи иных привилегий не имеют (если только они не указаны в конфигурации сайта). </para><para>Можно отметить, что второй и третий примеры редко бывают нужны для использования в списках доступа страницы, но могут быть полезны при задании списков доступа в конфигурации сайта. </para><para><anchor id="Default"/> </para></section></section><section><title>Использование «Default»</title><para>Иногда бывает необходимо незначительно изменить списки доступа по сравнению с их значениями по умолчанию. Например, предположим, что имеется следующая конфигурация: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_default]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u"]]></phrase><phrase><![CDATA[TrustedGroup:read,write,delete,revert All:read]]></phrase><phrase><![CDATA["]]></phrase>
<methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[  = ]]><phrase><![CDATA[u"]]></phrase><phrase><![CDATA[AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin]]></phrase><phrase><![CDATA["]]></phrase>
</programlisting><para>Предположим также, что для некоторой страницы необходимо разрешить ещё доступ на запись (write) пользователю <code>КакойТоПользователь</code>, но хочется сохранить настройки для <code>All</code> и <code>TrustedGroup</code>. Данная задача легко решается путём использования элемента  <code>Default</code>: </para><screen><![CDATA[#acl КакойТоПользователь:read,write Default]]></screen><para>В этом случае содержимое параметра <code>acl_rights_default</code> будет использовано в месте указания элемента Default. Другими словами, указанная выше запись эквивалентна следующей: </para><screen><![CDATA[#acl КакойТоПользователь:read,write TrustedGroup:read,write,delete,revert All:read]]></screen><para>Рассмотрим следующий пример: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[  = ]]><phrase><![CDATA[u"]]></phrase><phrase><![CDATA[AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin]]></phrase><phrase><![CDATA["]]></phrase>
</programlisting><para>Списки доступа обрабатываются в порядке «<code>acl_rights_before</code> — списки доступа страницы/<code>acl_rights_default</code> — <code>acl_rights_after</code>», слева направо. </para><para>Поэтому, обработка начинается с «<code>acl_rights_before</code>», с записи <code>AdminGroup:...</code> — она будет выполнена, если субъект, запрашивающий привилегию, состоит в данной группе. Если это так, то пользователь получает привилегии на администрирование, чтение, запись, удаление ,откат и обработка списков доступа завершается. </para><para>Если же условие записи не выполнилось, обрабатывается запись  <code>+TrustedGroup:admin</code> — она выполнится, если пользователь является членом группы <code>TrustedGroup</code>. В этом случае будет дана привилегия администрирования и обработка будет продолжена в случае, если запрашивалась иная привилегия. Поэтому, если пользователь является членом других групп, то он получит привилегии, предоставленные им, наряду с привилегиями, предоставленными в записях <code>Known:</code> и  <code>All:</code>. </para><para>Если же условие не выполнится, то начнется обработка списков доступа страницы (при их наличии) или списков доступа по умолчанию (в противном случае) и, в самом конце, обработаются списки доступа &quot;after&quot;. </para><para>Несмотря на то, что наследование настроек по умолчанию приводит к тому же эффекту, у него есть преимущество в виде автоматического использования новых настроек по умолчанию при их изменении. </para><para><anchor id="hierarchical"/> </para></section><section><title>Иерархическая обработка списков доступа</title><para>В случае включения параметра <code>acl_hierarchic</code> (см. <link linkend="Configuration">выше</link>), пространство страниц (а не только их имён) рассматривается в виде дерева и права доступа к страницам верхнего уровня влияют на права доступа к вложенным страницам. </para><para>Если обрабатываемая страница не содержит инструкции <code>#acl</code>, то используются списки доступа родительской страницы (или её родительской страницы, и так далее до верхнего уровня иерархии включительно). </para><para>Рассмотрим порядок обработки списков доступа для страницы А/Б/В/Г в зависимости от использования данного параметра: </para><informaltable><tgroup cols="2"><colspec colname="col_0"/><colspec colname="col_1"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para> <emphasis role="strong">acl_hierarchic</emphasis></para></entry><entry colsep="1" rowsep="1"><para> <emphasis role="strong">Порядок обработки</emphasis> </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> False (выключено) </para></entry><entry colsep="1" rowsep="1"><para> acl_rights_before, А/Б/В/Г <emphasis>или</emphasis> [acl_rights_default], acl_rights_after</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para> True (включено)   </para></entry><entry colsep="1" rowsep="1"><para> acl_rights_before, А/Б/В/Г <emphasis>или</emphasis> А/Б/В <emphasis>или</emphasis> А/Б <emphasis>или</emphasis> А <emphasis>или</emphasis> [acl_rights_default], acl_rights_after</para></entry></row></tbody></tgroup></informaltable><para>Списки доступа по умолчанию обрабатываются как и раньше, но используются только в случае отсутствия спецификации списков доступа у всех страниц в иерархии (а не только у текущей страницы) </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/icon-info.png" width="16"/></imageobject><textobject><phrase>{i}</phrase></textobject></inlinemediaobject> <emphasis>Примечание</emphasis>. Поведение иерархической обработки списков доступа отличалось в версиях <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9C%D0%BE%D0%B9%D0%BD%D0%9C%D0%BE%D0%B9%D0%BD#">МойнМойн</ulink> до 1.8.4: списки доступа родительских страниц больше не добавляются к спискам доступа вложенных страниц. Все привилегии для вложенной страницы должны быть указаны в ней. </para></section><section><title>Примеры использования</title><section><title>Публичная вики сообщества в интернете</title><para>В данном случае важно использовать списки доступа только в тех случаях, когда они действительно нужны. Вики базируются на открытости информации и свободе редактирования и используют мягкие способы защиты от нежелательного содержимого, поэтому большой необходимости в списках доступа нет, и чрезмерное их использование может нарушить механизм работы вики. </para><para>В случае же использования списков доступа, предлагается следующая конфигурация wikiconfig.py: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[РедакторВики:read,write,admin,delete,revert +AdminGroup:admin ВанДал:]]></phrase><phrase><![CDATA[']]></phrase>
</programlisting><para>Значение параметра <code>acl_rights_default</code> подходит для большинства случаев: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_default]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[Known:read,write,delete,revert All:read,write]]></phrase><phrase><![CDATA[']]></phrase>
</programlisting><para>Рекомендуется включать в группу <code>AdminGroup</code> небольшое число доверенных администраторов (они должны понимать, как работают вики). </para><para>Для использования группы <code>AdminGroup</code> необходимо создать одноимённую страницу и указать там участников, в ней состоящих (подробнее см. <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0%D0%BC#">ПомощьПоГруппам</ulink>). </para><para>Указание прав доступа аналогично приведённым в примере для <code>ВанДал</code> блокирует пользователя — он не может ничего делать (в том числе, читать и редактировать), используя свою учётную запись. Это имеет смысл в случае временной блокировки ,в противном случае можно просто удалить учётную запись (или отключить её посредством <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/SystemAdmin#">SystemAdmin</ulink> — ссылка на страницу помощи). Конечно, пользователь может работать не используя учётную запись, поэтому это не является действенным способом защиты (это тот случай, когда применяются мягкие средства защиты). </para></section><section><title>Вики как система управления содержимым (CMS)</title><para>В случае использования вики как простого способа создания содержимого сайта, недоступного для публичного редактирования, можно использовать следующие настройки в wikiconfig.py: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_default]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[']]></phrase>
<methodname><![CDATA[acl_rights_after]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[All:read]]></phrase><phrase><![CDATA[']]></phrase>
<methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[  = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[WebMaster,OtherWebMaster:read,write,admin,delete,revert]]></phrase><phrase><![CDATA[']]></phrase>
</programlisting><para>В этом случае кто угодно может получить доступ на чтение, но только управляющие работой сайта могут делать что-то иное. Во время работы над новой страницей они могут поместить  </para><screen><![CDATA[#acl All:]]></screen><para>, в результате чего никто другой не сможет увидеть незаконченную страницу. Когда страница примет законенный вид, можно удалить данную инструкцию для открытия её в публичный доступ. </para><para>Некоторые страницы могут допускать публичное редактирование (например, страница ГостеваяКнига), в таком случае для неё можно указать дополнительные права: </para><screen><![CDATA[#acl All:read,write]]></screen></section><section><title>Внутрикорпоративная вики</title><para>При использовании вики внутри корпоративной сети в случае возможности доверения пользователям административных привилегий (они не творят безобразия вроде блокирования друг друга или вандализма страниц), можно использовать следующую конфигурацию: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_default]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[Known:admin,read,write,delete,revert All:read,write]]></phrase><phrase><![CDATA[']]></phrase>
<methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[  = ]]><phrase><![CDATA[u']]></phrase><phrase><![CDATA[АдминистраторВики,ГенеральныйДиректор:read,write,admin,delete,revert]]></phrase><phrase><![CDATA[']]></phrase>
</programlisting><para>Таким образом, любой авторизованный пользователь получает все привилегии: <code>АдминистраторВики</code> и <code>ГенеральныйДиректор</code> имеют возможность делать что угодно в любом случае, аналогичные привилегии даются зарегистрированным пользователям списком <code>acl_rights_default</code> (они будут их иметь, пока не настроены списки доступа страницы) </para><para>В результате: </para><itemizedlist><listitem><para>При создании страницы автор может установить произвольные списки доступа. </para></listitem><listitem><para>Для существующих страниц могут быть установлены произвольные списки доступа, если они ещё не заданы. </para></listitem><listitem><para>Кто угодно (кроме пользователей <code>АдминистраторВики</code> и <code>ГенеральныйДиректор</code>) может быть заблокирован кем угодно на страницах с ещё не заданными списками доступа. </para></listitem></itemizedlist></section><section><title>Вики как публичное представительство компании</title><para>В случае использования вики как сайта компании, как правило, отсутствует желание давать возможность её править кому угодно. В таком случае, можно использовать что-то вроде этого: </para><programlisting format="linespecific" language="python" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[acl_rights_default]]></methodname><![CDATA[ = ]]><phrase><![CDATA[u"]]></phrase><phrase><![CDATA[TrustedGroup:admin,read,write,delete,revert All:read]]></phrase><phrase><![CDATA["]]></phrase>
<methodname><![CDATA[acl_rights_before]]></methodname><![CDATA[  = ]]><phrase><![CDATA[u"]]></phrase><phrase><![CDATA[AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin]]></phrase><phrase><![CDATA["]]></phrase>
</programlisting><para>Это означает, что: </para><itemizedlist><listitem><para>По умолчанию зарегистрированные и анонимные пользователи имеют возможность только просматривать страницы </para></listitem><listitem><para>При создании новой страницы (или на страницах с ещё не заданными списками доступа) пользователи, состоящие в группе <code>TrustedGroup</code>, могут установить произвольные списки доступа </para></listitem><listitem><para>Кто угодно, кроме пользователей, состоящих в группе <code>AdminGroup</code>, может быть заблокирован другими администраторами или доверяемыми пользователями </para></listitem><listitem><para>Доверяемые пользователи имеют административные права на любой странице, где они имеют право на запись, даже если для неё заданы списки доступа. </para></listitem></itemizedlist></section><section><title>Комментарии для страницы только для чтения</title><para>Можно добавить раздел комментариев в страницу только для чтения путём использования вложенной страницы, доступной на запись. Например, можно задать списки доступа для страницы <code>SomePage</code> следующим образом: </para><screen><![CDATA[#acl SomeUser:read,write All:read
'''Некое содержимое только для чтения'''
]]><![CDATA[
...
]]><![CDATA[
''' Комментарии '''
<<Include(SomePage/Комментарии)>>]]></screen><para>И задать <code>SomePage/Комментарии</code> следующим образом: </para><screen><![CDATA[#acl All:read,write
Комментарии для страницы SomePage можно оставить здесь.]]></screen><para>См. также <ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9A%D0%B0%D0%BA%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D1%82%D1%8C/%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0#">КакНастраивать/ВспомогательнаяСтраница</ulink>. </para></section></section><section><title>См. также</title><itemizedlist><listitem><para><ulink url="http://research.math.uvt.ro/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BE%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D0%9F%D0%BEAutoAdmin#">ПомощьПоAutoAdmin</ulink>: данная возможность позволяет предоставлять административные права для подмножеств страниц вики. </para></listitem></itemizedlist></section></section></article>