<?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><emphasis role="strong">Списки контролю доступу</emphasis> (ACL) можна використовувати для надання певним користувачам чи групам прав на виконання певних дій. Вони використовуються для: </para><itemizedlist><listitem><para>приховування деяких сторінок від публічного доступу. </para></listitem><listitem><para>публікації лише деяких сторінок для публічного доступу. </para></listitem><listitem><para>надання лише певним особам чи групі права на редагування однієї або кількох сторінок. </para></listitem><listitem><para>дозволу чи заборони видалення сторінок. </para></listitem><listitem><para>керування тим, хто може змінювати адміністративні правила сторінки. </para></listitem></itemizedlist><para>Для використання ACL треба або мати доступ до конфігурації вікі (для встановлення глобальних ACL) або право <emphasis>admin</emphasis> на певну сторінку, на якій ви хочете встановити (або змінити) ACL. </para><section><title>Зміст</title></section><section><title>Основи</title><para>Наявні права ACL: </para><itemizedlist><listitem><para>read - хто може переглядати сторінку </para></listitem><listitem><para>write - хто може редагувати сторінку </para></listitem><listitem><para>delete - хто може видаляти сторінку </para></listitem><listitem><para>revert - что може повертати сторінку до попередньої версії </para></listitem><listitem><para>admin - хто може змінювати рядок &quot;#acl&quot; на сторінці. </para></listitem></itemizedlist><para>Використовувати ACL у моін дуже просто, треба додати керуючий рядок згори сторінки, наприклад такий: </para><screen><![CDATA[#acl ПевнийКористувач:read,write All:read]]></screen><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Ви вже повинні мати право <code>admin</code>, щоб мати змогу додавати чи змінювати цей рядок acl - перегляньте сторінки <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%9A%D0%BE%D0%BD%D1%84%D1%96%D0%B3%D1%83%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F#">ДовідкаКонфігурування</ulink> та <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%90%D0%B2%D1%82%D0%BE%D0%90%D0%B4%D0%BC%D1%96%D0%BD%D1%96%D1%81%D1%82%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F#">ДовідкаАвтоАдміністрування</ulink>. </para></listitem></itemizedlist><para>Цей рядок дозволяє користувачу <code>ПевнийКористувач</code> переглядати та редагувати цю сторінку, усі інші зможуть лише переглядати її, але не редагувати (якщо ви не встановили для цього спеціальні параметри у конфігурації сайту). </para><para>При роботі системи моін вікі вкладення також захищаються ACL записом сторінки, до якої вони належать. </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Вкладення <emphasis>не</emphasis> захищаються, якщо на сервері налаштовано прямий доступ до вкладень (тобто, коли параметр використовується параметр <code>attachments</code> у файлі wikiconfig.py). </para><para><anchor id="Configuration"/> </para></section><section><title>Конфігурація</title><para>Для налаштовування ACL на сайті моін є наступні конфігураційні параметри. </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>acl_rights_before</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> сторінкою чи типовими ACL</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_after</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> сторінки чи типових ACL</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_default</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> ACL на сторінці, до якої надається доступ</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_valid</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>це - допустимі (відомі) права (за необхідності, їх список можна розширити).</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_hierarchic </para></entry><entry colsep="1" rowsep="1"><para> False </para></entry><entry colsep="1" rowsep="1"><para> Дозволяє ієрархічну обробку ACL, дивіться <link linkend="ієрархія">#ієрархія</link> </para></entry></row></tbody></tgroup></informaltable><para>Тепер ви знаєте що вони <emphasis>роблять</emphasis>, але ж що вони <emphasis>означають</emphasis>? </para><itemizedlist><listitem><para>&quot;перед&quot; означає <emphasis role="strong">примусове застосування</emphasis> (оскільки використовується алгоритм першої відповідності)  Використовуйте цей параметр для адміністраторів загальних сторінок сайту або редакторів сторінок. </para></listitem><listitem><para>&quot;типове значення&quot; означає <emphasis role="strong">що робити, якщо на сторінці не вказано ACL</emphasis>. Це еквівалентно додаванню таких самих ACL безпосередньо до сторінки. Також є права, що об'єднуються, якщо <emphasis role="strong">типове значення</emphasis>  записано серед ACL на сторінці. </para></listitem><listitem><para>&quot;після&quot; означає правила які треба <emphasis role="strong">не забути</emphasis> випадково (наприклад, надати усім доступ для перегляду) </para></listitem></itemizedlist><para>Можна розглядати їх як обробку перед, серед, та після основних ACL сторінки. </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/idea.png" width="16"/></imageobject><textobject><phrase>(!)</phrase></textobject></inlinemediaobject> Нотація u&quot;&quot; у рядках конфігурації означає unicode та <emphasis>має бути вказана</emphasis> - докладніше про це дивіться на сторінці  <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%9A%D0%BE%D0%BD%D1%84%D1%96%D0%B3%D1%83%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F#">ДовідкаКонфігурування</ulink>. </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Якщо для визначення груп ви не використовуєте назви у стилі <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%93%D0%BE%D1%80%D0%B1%D0%B0%D1%82%D0%B8%D0%B9%D0%A0%D0%B5%D0%B3%D1%96%D1%81%D1%82%D1%80#">ГорбатийРегістр</ulink>, наприклад, для PROJECTGroup слід змінити  <emphasis>page_group_regex</emphasis> на u'[a-z0-9,A-Z]Group$'  </para></section><section><title>Синтаксис</title><para>Кожен рядок має такий синтаксис: </para><screen><![CDATA[#acl [+-]Користувач[,Група,...]:[право[,право,...]] [[+-]ІншийКористувач:...] [[+-]Trusted:...] [[+-]Known:...] [[+-]All:...] [Default]]]></screen><para>Де: </para><itemizedlist><listitem><para><emphasis role="strong">Користувач</emphasis> - ім'я користувача, права застосовуються лише для користувача з таким іменем.  </para></listitem><listitem><para><emphasis role="strong">Група</emphasis> - назва сторінки, що відповідає <code>page_group_regex</code> з деякими рядками у вигляді &quot; * Member&quot; (дивіться <link linkend="Групи">#Групи</link>). </para></listitem><listitem><para><emphasis role="strong">Trusted</emphasis> - спеціальна група, що містить усіх автентифікованих користувачів, з автентифікацією типу HTTP-Basic. </para></listitem><listitem><para><emphasis role="strong">Known</emphasis> - спеціальна група, що містить усіх допустимих користувачів (подібно до використання cookie). </para></listitem><listitem><para><emphasis role="strong">All</emphasis> -  спеціальна група, що містить усіх користувачів (відомих та анонімних). </para></listitem><listitem><para><emphasis role="strong">Default</emphasis> - спеціальний запис, що вставляє у вказаному місці записи з <code>acl_rights_default</code> (Дивіться <link linkend="Default">#Default</link>). </para></listitem><listitem><para><emphasis role="strong">right</emphasis> може бути довільним словом, наприклад read, write, delete, revert, admin. Припустимі лише слова, що вказані у <code>acl_rights_valid</code>, інші ігноруються. У виразі можна не вказувати права, тоді права не надаються. </para></listitem></itemizedlist><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Не додавайте пробіл між назвою та правами - <code>All: write,read</code> - це <emphasis role="strong">некоректний</emphasis> рядок ACL. </para></section><section><title>Можливі права</title><para>Є певні права, які можна використовувати у записах ACL. Зверніть увагу, що Delete<emphasis role="strong"/>Page та Rename<emphasis role="strong"/>Page неприпустимі, якщо користувач не належить до <code>Known</code>, навіть якщо надано право <code>delete</code>. </para><glosslist><glossentry><glossterm>read</glossterm><glossdef><para>Вказані користувачі матимуть змогу переглядати текст цієї сторінки. </para></glossdef></glossentry><glossentry><glossterm>write</glossterm><glossdef><para>Вказані користувачі матимуть змогу редагувати цю сторінку. </para></glossdef></glossentry><glossentry><glossterm>delete</glossterm><glossdef><para>Вказані користувачі матимуть змогу видаляти цю сторінку та її вкладення. </para></glossdef></glossentry><glossentry><glossterm>revert</glossterm><glossdef><para>Вказані користувачі матимуть змогу повертати цю сторінку до попередньої версії. </para></glossdef></glossentry><glossentry><glossterm>admin</glossterm><glossdef><para>Вказані користувачі матимуть адміністративні права на цю сторінку. Тобто вони зможуть змінювати її ACL, включно з надаванням та забиранням права &quot;admin&quot; у інших користувачів. </para></glossdef></glossentry></glosslist><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Немає окремого права <emphasis role="strong">rename</emphasis>: для перейменування потрібно щоб користувач мав права read, write та delete. </para></section><section><title>Логіка роботи на одній сторінці</title><para>Коли користувач намагається отримати доступ до певного, захищеного ACL ресурсу, то ACL обробляються у порядку їх появи. <emphasis role="strong">Перший ACL, що відповідає користувачу</emphasis> визначає чи матиме користувач доступ до цього ресурсу, обробка припиняється одразу при виявленні відповідності імені користувача у записі ACL. </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/idea.png" width="16"/></imageobject><textobject><phrase>(!)</phrase></textobject></inlinemediaobject> Оскільки використовується алгоритм <emphasis>першої відповідності</emphasis>, вам слід сортувати ваші ACL: спочатку окремі імена користувачів, потім спеціальні групи, потім загальні групи, потім <code>Known</code> та зрештою <code>All</code>. </para><para>Наприклад, наступний ACL вказує, що <code>ПевнийКористувач</code> може переглядати та редагувати ресурси, що захищені цим ACL, а будь-який член групи <code>ПевнаГрупа</code> (окрім <code>ПевнийКористувач</code>, якщо він входить до цієї групи) має адміністративні права, а всі інші можуть лише переглядати ресурс. </para><screen><![CDATA[#acl ПевнийКористувач:read,write ПевнаГрупа:read,write,admin All:read]]></screen><para>Щоб зробити систему більш гнучкою, є два модифікатори: префікси '+' та '-'. При їх використанні обробка припиняється лише якщо певне право для певного користувача відповідає користувачу та праву у вказаному ACL, але продовжується, якщо ви шукаєте інше право (або іншого користувача). У випадку '+' право буде надане, у випадку '-' право буде заборонено (при зупинці обробки). </para><para>Наприклад, вважаємо що <code>ПевнийКористувач</code> є членом <code>ПевнаГрупа</code>, наведений вище ACL можна переписати так: </para><screen><![CDATA[#acl -ПевнийКористувач:admin ПевнаГрупа:read,write,admin All:read]]></screen><para>Цей приклад є специфічним для <code>ПевнийКористувач</code>,оскільки коли для користувача <code>ПевнийКористувач</code> запитується право admin, доступ буде заборонено та обробка припиняється. У іншому випадку, обробка продовжується. </para><para>Або навіть: </para><screen><![CDATA[#acl +All:read -ПевнийКористувач:admin ПевнаГрупа:read,write,admin]]></screen><para><code>+All:read</code> означає що коли будь-який користувач запитує право read, він отримає доступ та обробка зупиняється. У іншому випадку обробка продовжується. Якщо право admin запитується для користувача <code>ПевнийКористувач</code>, доступ буде заборонено та обробка зупиняється. У іншому випадку обробка продовжується. Зрештою, якщо член групи <code>ПевнаГрупа</code> запитує деяке право, доступ надається, доступ надається якщо це право вказане, або не надається у іншому випадку. Усі інші користувачі не мають інших прав, окрім визначених у конфігурації. </para><para>Зверніть увагу, можливо, ви не захочете використовувати другий та третій приклади у записах ACL на сторінках. Хоча, вони дуже корисні у записах конфігурації сайтів. </para><para><anchor id="Default"/> </para></section><section><title>Успадковування типових прав</title><para>Іноді може знадобитися надати комусь права без суттєвого впливу на типові права. Наприклад, уявімо, що у вашій конфігурації є наступні записи: </para><screen><![CDATA[acl_rights_default = u"TrustedGroup:read,write,delete,revert All:read"
acl_rights_before  = u"AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin"]]></screen><para>Тепер, є сторінка, до якої ви хочете надати доступ &quot;write&quot; для користувача <code>ПевнийКористувач</code>, але також бажаєте зберегти типову поведінку для All та <code>TrustedGroup</code>. Це можна легко зробити користуючись записом <emphasis role="strong">Default</emphasis>: </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><screen><![CDATA[acl_rights_before  = u"AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin"]]></screen><para>ACL обробляються у порядку розташування у &quot;before&quot;, потім ACL &quot;сторінки/default&quot; а потім &quot;after&quot;, &quot;зліва направо&quot;. </para><para>обробка починається зліва у &quot;before&quot; з <code>AdminGroup:...</code> - тобто проводиться перевірка чи є ви членом  групи адміністраторів. Якщо це так, ви отримуєте ці права (arwdr) та обробка ACL ПРИПИНЯЄТЬСЯ. </para><para>Якщо ви не є членом групи адміністраторів, обробка ACL продовжується з <code>+TrustedGroup:admin</code> - перевіряється чи є ви членом групи <code>TrustedGroup</code>. </para><para>Якщо є відповідність, ви отримуєте ці права (a) та - тепер поведінка дещо відрізняється, оскільки використовується модифікатор - обробка ACL ПРОДОВЖУЄТЬСЯ! Тож, якщо є відповідність іншому правилу для цієї групи або ваш користувач належить до <code>Known:</code> чи <code>All:</code> ви також отримуєте ці права. </para><para>Якщо відповідності немає, обробка ACL триває - оброблюються вказані у сторінці ACL  (якщо вони є) або типові ACL (якщо на сторінці немає ACL) та зрештою ACL з виразу &quot;after&quot; . </para><para>Хоча вони представляють однакові речі, успадковування типових ACL маж перевагу над автоматичним внесенням будь-яких подальших змін до типових ACL. </para><para><anchor id="ієрархія"/> </para></section><section><title>Ієрархічна обробка ACL</title><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> Нова властивість у версії 1.6 </para><para>Якщо ви увімкнули <code>acl_hierachic</code> (дивіться <link linkend="Configuration">вище</link>), тоді сторінки вважаються ієрархічними та на права доступу користувача можуть впливати права доступу, що встановлені на сторінках вищого рівня. </para><para>В двох словах, якщо права не визначені у поточній сторінці,тоді перевіряються ACL батьківської сторінки, а потім <emphasis>її</emphasis> батьківської сторінки, і так далі доки не залишиться батьківських сторінок. </para><para>Всі звичайні правила ACL обробляються як описано вище, але замість перевірки ACL лише з поточної сторінки, до рядків #acl зі сторінки додаються до усі ACL з кожної сторінки у ієрархії у напрямку до кореня.  Розглянемо декілька прикладів для сторінок з назвами A/B/C/D, та відмінності при увімкненій та вимкненій функції: </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, A/B/C/D, [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, A/B/C/D, A/B/C, A/B, A, [acl_rights_default], acl_rights_after</para></entry></row></tbody></tgroup></informaltable><para>Зверніть увагу, що acl_rights_before, acl_rights_default та acl_rights_after не застосовуються один раз до кожної сторінки у ієрархії, а лише один раз при обробці сторінок A/B/C/D.  Стосовно типових прав, вони працюють як і раніше, але замість використання їх за відсутності ACL на поточній сторінці, вони використовуються якщо <emphasis>немає</emphasis> сторінок у ієрархії, що містять хоч якісь ACL.  Тож насправді, ієрархічні ACL не роблять нічого іншого, як замінюють ACL поточної сторінки об'єднанням усіх рядків #acl, знайдених на сторінках ієрархії. </para><para><anchor id="Групи"/> </para></section><section><title>Групи</title><para>Групи користувачів спрощують вказування прав для великих груп. Зазвичай, назва сторінки групи закінчується на <code>Group</code> наприклад <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D1%80%D1%83%D0%B7%D1%96Group#">ДрузіGroup</ulink>. Це дозволяє <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/MoinMoin#">MoinMoin</ulink> трактувати їх як список користувачів. Типовий шаблон можна змінити (наприклад для інших мов, тощо.), дивіться <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%9A%D0%BE%D0%BD%D1%84%D1%96%D0%B3%D1%83%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F#">ДовідкаКонфігурування</ulink>. </para><para>Лише друзі користувача <code>ПевнийКористувач</code> можуть читати та редагувати сторінку: </para><screen><![CDATA[#acl ПевнийКористувач:read,write ПевнийКористувач/ДрузіGroup:read,write]]></screen><para><code>ПевнийКористувач/ДрузіGroup</code> буде сторінкою зі списком верхнього рівня, в якому перелічені імена користувачів вікі у цій групі: </para><screen><![CDATA[#acl ПевнийКористувач:read,write,admin,delete,revert
 * JoeSmith
 * JoeDoe
 * JoeMiller]]></screen><para>Сторінка з назвою <code>AdminGroup</code> може визначати групу для цього імені, і також може бути захищена ACL: </para><screen><![CDATA[#acl AdminGroup:admin,read,write All:read
 * ПевнийКористувач
 * ІншийКористувач
   * Цей пункт наразі ігнорується.
Будь-який інший текст не у списку першого рівня ігнорується.]]></screen><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Пункти списку першого рівня містять один та лише один пробіл перед зірочкою (а також один пробіл після зірочки). Наступні приклади не будуть працювати: </para><screen><![CDATA[  * певний користувач
-- два пробіли, тож це не список першого рівня]]></screen><para>Можна налаштувати які назви сторінок вважатимуться сторінками визначення груп (наприклад, для вікі не англійською мовою): </para><screen><![CDATA[page_group_regex =  u'[a-z]Group$'    # це - початкове значення]]></screen><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="http://research.math.uvt.ro/wiki//static/moniker/img/alert.png" width="16"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Якщо зміни на сторінці групи не діють, вкажіть <ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%9C%D0%BE%D1%96%D0%BD%D0%9C%D0%BE%D1%96%D0%BD#">МоінМоін</ulink> перебудувати кеш шляхом видалення усіх файлів у каталозі <code>path_to_your_wiki_instance/data/cache/wikidicts/</code> </para></section><section><title>Приклади використання</title><section><title>Публічний Вікі у Інтернет</title><para>При такому використані важливо використовувати ACL лише за необхідності. Вікі залежать від відкритості інформації та свободи редагування. Безпека досягається шляхом вичищання некоректного змісту. Тож в цілому потреби у ACL немає. Надмірне використання ACL може зруйнувати спосіб роботи вікі. </para><para>Тому ACL слід або зовсім не використовувати (початкова конфігурація), або надати wikiconfig.py приблизно такий вигляд: </para><screen><![CDATA[acl_rights_before = u'ВікіРедактор:read,write,admin,delete,revert +AdminGroup:admin BadGuy:' ]]></screen><para>Вам підійде таке початкове значення параметра <code>acl_rights_default</code>: </para><screen><![CDATA[acl_rights_default = u'Known:read,write,delete,revert All:read,write' ]]></screen><para>Радимо вам мати невелику групу довірених адміністраторів у <code>AdminGroup</code> (вони мають добре знати принципи роботи вікі, у іншому разі вони можуть випадково зіпсувати принципи роботи вікі: бути відкритим, не бути закритим та замкненим!). </para><para>При використанні <code>AdminGroup</code>, слід зробити сторінку з назвою <code>AdminGroup</code> та використовувати її для визначення осіб, які мають повноваження адміністраторів. </para><para>Наведене вище правило для <code>BadGuy</code> блокує йому доступ, він не зможе нічого читати або редагувати з цього облікового запису. Це має сенс лише як тимчасове явище, у іншому разі простіше видалити цей обліковий рахунок. Звичайно, <code>BadGuy</code> може діяти анонімно, тож це не є реальним захистом (тут має спрацьовувати м'яка безпека). </para></section><section><title>Вікі у якості простої CMS</title><para>Якщо вам потрібна вікі для простого створення веб-сайту, але вам не потрібне публічне редагування (за винятком кількох веб-майстрів), використовуйте такий wikiconfig.py: </para><screen><![CDATA[acl_rights_default = u'All:read' 
acl_rights_before  = u'ВебМайстер,ІншийВебМайстер:read,write,admin,delete,revert' ]]></screen><para>Тож кожен зможе переглядати ваш сайт, але лише веб-майстри зможуть робити все інше. Для сторінок, робота над якими ще не закінчена можна встановити  </para><screen><![CDATA[#acl All: ]]></screen><para>щоб ніхто інший не мав змоги бачити незавершену сторінку. Коли робота над сторінкою завершена, не забудьте видалити цей рядок, щоб задіяти правила з <code>acl_rights_default</code>. </para><para>Деякі сторінки можуть припускати публічні коментарі (наприклад, сторінка з назвою <code>PublicComments</code>), тож для неї слід надати більше прав: </para><screen><![CDATA[#acl All:read,write ]]></screen></section><section><title>Вікі у інтранет</title><para>Якщо ви хочете використовувати вікі у інтранет та довіряєте вашим користувачам (вони не робитимуть таких ворожих дій як блокування інших користувачів чи псування сторінок) адміністративні функції, ви можете використовувати: </para><screen><![CDATA[acl_rights_default = u'Known:admin,read,write,delete,revert All:read,write'
acl_rights_before  = u'АдміністраторВікі,ВеликийНачальник:read,write,admin,delete,revert' ]]></screen><para>Тож кожен зможе читати, змінювати сторінки та ACL записи, <code>АдміністраторВікі</code> та <code>ВеликийНачальник</code> мають змогу робити будь-що, відомі користувачі отримують адміністративні права у acl_rights_default (вони їх отримують, якщо на сторінці не вказано інші ACL). </para><para>Підсумок: </para><itemizedlist><listitem><para>до нових сторінок автор сторінки може додати будь-які ACL, які забажає </para></listitem><listitem><para>до існуючих сторінок, які ще не містять ACL, будь-який відомий користувач може встановити будь-які ACL, які забажає </para></listitem><listitem><para>будь-кого (за винятком <code>АдміністраторВікі</code> та <code>ВеликийНачальник</code>) може заблокувати будь-хто інший (але з &quot;known&quot;) на сторінках без ACL </para></listitem></itemizedlist></section><section><title>Вікі у якості публічної сторінки компанії</title><para>Якщо ви хочете використовувати вікі для сайту компанії, та не бажаєте, щоб кожен користувач міг змінювати сторінку компанії, можете вкзати подібні правила: </para><screen><![CDATA[acl_rights_default = u"TrustedGroup:admin,read,write,delete,revert All:read"
acl_rights_before  = u"AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin"]]></screen><para>Це означає: </para><itemizedlist><listitem><para>відомим та анонімним користувачам початково дозволено лише читати сторінки </para></listitem><listitem><para>для нових сторінках, користувачі з <code>TrustedGroup</code> можуть встановлювати будь-які ACL, які забажають </para></listitem><listitem><para>для існуючих сторінок, для яких не встановлено ACL, будь-який користувач з <code>TrustedGroup</code> може встановлювати будь-які ACL, які забажає </para></listitem><listitem><para>будь-який користувач, за винятком осіб з <code>AdminGroup</code>, може бути заблокований іншими адміністраторами або довіреними користувачами </para></listitem><listitem><para>особи з <code>TrustedGroup</code> отримують адміністративні повноваження на будь-яку сторінку, яку вони можуть змінювати, навіть якщо на ній вказані якісь ACL </para></listitem></itemizedlist></section><section><title>Коментарі до сторінки доступної лише для читання</title><para>Ви можете додавати розділ коментарів для сторінки лише для читання використовуючи підсторінку з можливістю редагування, наступні користувачі будуть мати можливість запису. Наприклад, можна визначити сторінку <code>ПевнаСторінка</code> подібним чином: </para><screen><![CDATA[#acl ПевнийКористувач:read,write All:read
'''Зміст доступний лише для читання'''
]]><![CDATA[
...
]]><![CDATA[
''' Коментарі користувачів '''
<<Include(ПевнаСторінка/Коментарі)>>]]></screen><para>Та визначення для сторінки <code>ПевнаСторінка/Коментарі</code>: </para><screen><![CDATA[#acl All:read,write
Додавайте коментарі до сторінки ПевнаСторінка.]]></screen></section></section><section><title>Також дивіться</title><itemizedlist><listitem><para><ulink url="http://research.math.uvt.ro/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8E%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D1%83/wiki/%D0%94%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%B0%D0%90%D0%B2%D1%82%D0%BE%D0%90%D0%B4%D0%BC%D1%96%D0%BD%D1%96%D1%81%D1%82%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F#">ДовідкаАвтоАдміністрування</ulink>: Властивість АвтоАдміністрування дозволяє надавати користувачам адміністративні повноваження для піднабору вікі </para></listitem></itemizedlist></section></section></article>