DokuWiki: Пользователи

Пользователи

Источник фото: Wikimedia.org

В контрольной панели администратора DokuWiki есть 2 раздела, отвечающих за работу с пользователям.

==Оглавление==

Управление пользователями

На странице «Управление пользователями» мы работаем с пользователями:

/start?do=admin&page=usermanager

Логины

Пользователи различаются по логинам.

Требования к именам пользователей (логинам) совпадают с требованиями к именам (идентификаторам) страниц. Они перечислены на странице https://www.dokuwiki.org/pagename:

Под именами страниц в DokuWiki понимаются имя страницы, под которым она будет записана в URL. Все имена в DokuWiki автоматически преобразуются в строчные буквы. Допустимые символы: буквы, цифры. Внутри имени разрешены специальные символы: точка ".", дефис "-" и подчеркивание "_". Все другие специальные символы (пробелы, плюс, косая черта, проценты и т. д.) преобразуются в символы подчеркивания. Вы не можете начинать или заканчивать имена со специальных символов. Соответственно, DokuWiki удалит специальные символы в начале или в конце имен. Двоеточие ":" используются как разделитель в пространстве имен. Для более естественного отражения иерархии файловой системы данных можно заменить двоеточие на косую черту в "Настройка вики" в параметре uselash. Неявное ограничение длины pagename устанавливается обратными ссылками. Для pagenames необходимо иметь по 3 символа, по крайней мере, для страниц для которых вы хотите иметь обратные ссылки.

Для большего единообразия логинов рекомендуется использовать в логинах только маленькие латинские буквы и цифры, а разные слова в логине разделять дефисами «-».

Группы

В DokuWiki можно объединять пользователей в группы. Группы различаются по правам доступа к страницам.

Правила формирования имен групп выглядят аналогично именам пользователей (логинам). Все отличие, что спереди имени группы в DokuWiki нужно ставить знак @ как обозначение что речь идет о группе.

После установки в DokuWiki есть две группы, настроенные по умолчанию, @admin и @user. (Процесс добавления новых групп описан ниже, в «Управление списками контроля доступа (ACL)»).

Когда добавляем нового пользователя, можем указать для него группы, куда он входит. Группы лучше указывать со знаком @ спереди названия группы. Если группа не указана, то зарегистрированный пользователь будет автоматически добавлен в группу user.

Список пользователей

В разделе «Список пользователей» приведен список всех пользователей. Если щелкнуть по логину пользователя в колонке «Логин», то можно отредактировать все параметры пользователя.

Добавить пользователя

В разделе «Добавить пользователя» задается новый пользователь. Группы, к которым он принадлежит, указываются со значками @ спереди и перечисляются через запятую. При желании можно оповестить пользователя о том, что для него заведена учетная запись на сайте. Тогда пользователь получит примерно такой E-mail:

От: no-reply@...
Тема: [<Название сайта>] Ваш пароль для системы «Докувики»

Здравствуйте, <Полное имя>.

Ваши данные для <Название сайта> (https://www.example.com/)

Имя пользователя: <login>
Пароль: <пароль>

Это письмо создано «Докувики» с сайта
https://www.example.com/

Извещение будет отправлено на языке, который был выбран для интерфейса сайта.

Импорт нескольких пользователей

В разделе «Импорт нескольких пользователей» вы можете импортировать csv-список пользователей. Принимаются поля:

  • user-id
  • полное имя
  • E-mail
  • группы, в которые входит пользователь.

После удачного импорта каждого пользователя DokuWiki сгенерирует для него пароль и отошлет извещение на его E-mail.

Форма саморегистрации пользователей

Если в настройках DokuWiki пользователям разрешена саморегистрация, то они смогут пройти на страницу регистрации:

/start?do=register

Вверху формы регистрации DokuWiki публикует инструкции для пользователя по заполнению полей регистрации. В русской версии они выглядят так:

Для регистрации в вики заполните все поля ниже. Обратите внимание на **правильность адреса электронной почты** — туда будет выслан пароль в том случае, если вас не просят самостоятельно ввести его здесь. Логин должен удовлетворять ограничениям для [[doku>pagename|идентификатора страницы]].

Эти инструкции прописаны в файле /inc/lang/ru/register.txt . Поменяйте их на более понятные, например следующие:

Правила заполнения полей:

  • Логин должен быть составлен из латинских маленьких букв, цифр и дефисов «-». Не используйте в логине пробелы и другие спецсимволы. Логин должен начинаться с буквы. Примеры: ivan, ivan25, ivan-moskva, ivan-sidorov,
  • Полное имя по возможности должно быть похоже на логин. Полное имя можно записать любыми знаками, в том числе кириллицей. Примеры: Иван, Иван (Москва), Иван Сидоров
  • E-mail укажите реальный. На него будет выслан пароль.

Запишите обновленные инструкции в файл register.txt вместе с соответствующей wiki-разметкой.

При обновлении DokuWiki файл /inc/lang/ru/register.txt будет затерт свежей версией файла в дистрибутиве DokuWiki. Каждый раз при обновлении DokuWiki восстанавливайте исправленный вариант файла.

Управление списками контроля доступа (ACL)

В документации есть подробная статья «Контроль доступа с помощью списков доступа (ACL)»:

Списки контроля доступа к страницам дают отдельным пользователям и группам пользователей права на работу со страницами в том или ином виде - чтение, редактирование,… Для управления контроля доступа нужно перейти в админку и зайти в Access Control List Management:

/start?do=admin&page=acl

3 подхода к настройке контроля доступа

Существуют 3 подхода к настройке прав пользователей.

Корпоративная база знаний

Первый подход характерен для корпоративных баз знаний:

  • круг зарегистрированных пользователей ограничен
  • пользователей заводит администратор
  • пользователи обычно это сотрудники.

В этом подходе зарегистрированным пользователям разрешаются серьезные правки страниц, в том числе загрузка файлов. Данный подход отражен в настройках по умолчанию списков контроля доступа, которые предлагают разработчики DokuWiki.

Сайт в стиле Википедии

Второй подход ближе к сайтам наподобие Википедии:

  • незарегистрированные пользователи могут редактировать сообщения, но не могут загружать файлы
  • пользователи могут регистрироваться самостоятельно
  • зарегистрированные пользователи могут дополнительно загружать файлы.

Этот подход с одной стороны упрощает «вход» посетителей в редактирование сайта. Но чреват тем, что даже несмотря на каптчу, на сайт будут вываливаться горы ручного спама и вандализма. Здесь нужно иметь на сайте команду, которая будет постоянно следить за порядком.

Смешанный подход

Третий подход находится посередине предыдущих двух. Это смесь корпоративной базы знаний и вики-сайта. Сайт создается сотрудниками с привлечением сил сообщества:

  • сайт открывается для саморегистрации посетителей
  • зарегистрированным пользователям разрешаются только правки страниц, но запрещается загрузка файлов
  • вводится отдельная группа @staff («сотрудники», «свои», «доверенные пользователи»,…). Ей разрешается и правка страниц и загрузка сайтов. Администратор вручную назначает пользователей в группу @staff.

Смешанный подход позволяет:

  • наполнять сайт силами проверенной команды
  • попутно привлечь обычных посетителей сайта к регистрации и редактированию статей без затрат времени администратора
  • количество спама и вандализма минимально. Регистрация хорошо отсекает спамеров
  • заодно отсекаются многие желающие участвовать в наполнении сайта. Основную нагрузку в развитии сайта вначале должна взять на себя команда сайта
  • когда сайт разовьется, переходят на второй подход в стиле Википедия. Редактировать сообщения смогут даже незарегистрированные пользователи. К этому времени на сайте будет создана команда доверенных пользователей. Она возьмет на себя борьбу со спамерами и вандалами.

В объяснениях настроек контроля доступа будем придерживаться третьего подхода.

Коррекция текущих прав

Нужно настроить права пользователей для всех страниц сайта. Идем вниз в раздел Current ACL Rules.

В соответствии со смешанным подходом:

  • уменьшите у @user права с «Загрузка файлов» (Upload) на «Правка» (Edit)
  • добавьте группу @staff (сотрудники) с правами на «Загрузка файлов».

(С помощью прав на Create, Upload and Delete вы можете указать только пространства имен (папки/каталоги сайта), но не можете указать конкретные страницы сайта, на которые влияют эти права).

Добавить группы

Примерный список групп пользователей, характерный для смешанного подхода:

  • @ALL - все (незарегистрированные пользователи, зарегистрированные пользователи,…)
  • @user - зарегистрированные пользователи. Могут редактировать статьи
  • @staff - сотрудники. Дополнительно могут загружать файлы
  • @manager - менеджеры. В дополнение к правам сотрудников у менеджеров есть часть администраторских прав. Эта роль поддерживается некоторыми плагинами. Например, плагин массового отката изменений позволяет делать это администраторам и менеджерам. В «Настройка вики» в настройках в разделе «Параметры аутентификации» ( /start?do=admin&page=config#_authentication ) в параметре «manager» мы уже прописали, к менеджерам у нас относятся все участники группы @manager
  • @admin - могут делать на сайте все что угодно.

В дистрибутиве DokuWiki уже заданы группы @ALL, @user и @admin. Теперь нужно добавить группы @staff и @manager.

Очередная группа добавляется так:

  • в левой колонке выделить «корень»
  • в центральной колонке «Права доступа для» должно быть указано «Группа:»
  • в поле указать название новой группы, например: @staff
  • нажать кнопку «Выбрать».

Через несколько секунд появится надпись:

Сейчас члены группы staff имеют следующие права на доступ к пространству имён *: Чтение

(«Пространство имен» это папки/каталоги сайта. Звездочка означает имеются ввиду все папки/каталоги сайта).

Чуть ниже появится блок «Добавить новую запись»:

Выбрать радиокнопку «Загрузка файлов» и нажать кнопку «Сохранить».

Проверить, что внизу в разделе «Текущие права ACL» добавилась строка

* @staff Загрузка файлов

На этом предварительная настройка ACL закончилась.

Права для страницы или пространства имен

Если хотим поменять права для конкретной страницы или папки, то выбираем в левой колонке нужную страницу или папку.

При выборе страниц в правой колонке будет строчка наподобие:

Please enter a user or group in the form above to view or edit the permissions set for the page "papka1:page1" .

Выше нее будет выпадающее меню «Permissions for», где по умолчанию установлено Group. Щелкнуть на треугольнике справа. Выбрать нужную группу, например, @ALL.

Появится надпись:

Members of group ALL currently have the following permissions on page "papka1:page1": Read. Note: Those permissions were not set explicitly but were inherited from other groups or higher namespaces.

Ниже будет раздел Add new Entry с опциями:

None Read Edit Create Upload Delete

Отметить слева радиокнопкой нужный пункт. Например, None запретит даже читать страницу.

Сохранить выбор кнопкой Save.

После перезагрузки зайти снова в Access Control List Management:

/doku.php?id=start&do=admin&page=acl

Внизу появится дополнительная строчка:

"papka1:page1" @ALL None

Ограничение доступа

В документации DokuWiki.org хорошо описано, как DokuWiki определяет, какие права разрешены пользователю для какой-то страницы:

DokuWiki получает задачу определить, какие права дать конкретному пользователю к определенной странице. DokuWiki подбирает из всех правил одно самое подходящее. Выбор делается так:

  • по пользователю или группе. Сначала оставляются правила, где упоминается пользователь или группа, к которой он принадлежит. Другие правила больше не рассматриваются. Если осталось одно правило, оно применяется. Если правил осталось больше одного, то производится следующий выбор:
  • по пространству имен или странице. Среди отобранных правил подбираем правила, которые наиболее точно указывают пространство имен или страницу. Например, общему пространству * будет предпочтено пространство papka1/* . Которому будет предпочтено более точное пространство papka1/papka2/* . Которому будет предпочтено точное указание на нужную страницу papka1/papka2/page1 . Если осталось одно правило, оно применяется. Если осталось несколько правил с одинаковыми пространствами имен, то производится следующий выбор:
  • по уровню доступа. Возможно, обнаружилось несколько правил, у которых одинаковые пространства имен <namespace:page> в одинаковой мере. Тогда будет работать правило с самым большим уровнем доступа.

Имейте ввиду, что для DokuWiki не важен порядок строчек с заданными правилами доступа для разных групп и страниц. Фиксируем связку «статья-пользователь» и ищем самое подходящее правило. Если нашлось единственное правило, то на этом останавливаемся. Если не получилось, то начинаем искать связки «статья-группа» в группах со членством данного пользователя. Если и здесь неудача, то поднимаемся на уровень выше в пространствах имен статьи. Так поднимаемся все выше и выше. Если поиски не увенчаются успехом, то нас всегда в конце нас ждет универсальная связка статья-группа вида «*/@ALL».

Замечание 1: Под удалением (delete) понимаются исключительно медиафайлы. Для удаления и восстановления статей вполне достаточно прав пользователя на редактирование (edit).

Замечание 2: Право на загрузку (upload) медиафайлов не дает права на перезаписывание существующих медиа-файлов. Для перезаписи существующих медиафайлов нужно иметь право на удаление (delete) медиафайлов.

Редактирование ACL

Вновь обращаемся к документации на DokuWiki.org:

Используйте менеджер ACL «Управление списками контроля доступа» в панели администратора, чтобы создать новое правило доступа или изменить существующее.

Новое правило доступа ACL добавляется в 3 этапа:

  1. Слева в навигации по папкам и страницам сайта укажите нужную папку (пространство имен) или статью. Ограничения будут применены к выбранной папке или статье;
  2. Укажите, на кого будет действовать это правило доступа: а) если пользователь или группа уже существует, то выберите ее из выпадающего меню; б) если создается новый пользователь или группа, то для этого укажите сначала тип (User: или Group:), а затем укажите в поле имя пользователя или группы;
  3. Укажите нужные права доступа указанного пользователя или группы на указанную папку (пространство имен) или страницу.

Если правило уже было создано, то вы можете изменить его внизу страницы «Управление списками контроля доступа» в таблице «Текущие права ACL». Доступно изменение прав доступа у существующих правил, а также удаление ненужных правил.

7 уровней доступа

Документация к DokuWiki, Информация о внутреннем представлении ACL.

Сведем вместе всю информацию по правам доступа. Существует 7 уровней прав доступа. Права доступа нарастают от уровня к уровню. На более старшем уровне доступа получаем все права более младших уровней и дополнительно еще какое-то право.

Начальная набор прав

Начальный набор прав применяется как к отдельным статьям, так и к пространствам имен (папкам/каталогам). В начальном наборе мы можем выбрать один из 3 уровней доступа:

1. none: нет доступа — полный запрет

2. read: право на чтение

3. edit: дополнительно можно изменять существующие статьи, удалять и восстанавливать удаленные статьи. Нельзя создавать новые статьи, загружать или удалять медиа-файлы.

Продвинутый набор прав

Продвинутый набор прав применяется только к пространствам имен (папкам/каталогам). Продвинутый набор прав нельзя применить к отдельным статьям. В продвинутый набор прав входят остальные уровни доступа:

4. create: дополнительно можно создавать новые статьи

5. upload: дополнительно можно загружать медиафайлы

6. delete: дополнительно можно заменять или удалять медиафайлы

7. admin: можно делать все со статьями и настройками сайта


Ссылки по DokuWiki

Введение в DowuWiki

Чек-лист для администратора «Установка DokuWiki на раз-два-три»:

© 2018-2023 MaxReform.ru. Все права защищены.