Управление доступом

Изменено в версии 3.0: До версии 3.0 система привилегий Weblate была основана на системе привилегий Django, однако в данный момент она заменена на собственную, созданную специально для Weblate. Если вы используете более старую версию, то обратитесь к документации той конкретной версии, которую вы используете.

Weblate поставляется с тонко настраиваемой системой привилегий для назначения пользователям прав как в рамках всего экземпляра приложения, так и в рамках отдельных его частей.

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

После установки создаётся стандартный набор групп; вы можете использовать их, чтобы назначить пользователям роли в рамках всего экземпляра Weblate (смотрите раздел Группы и роли по умолчанию). Кроме того, если включёно управление доступом к объекту, вы можете назначать пользователей конкретным проектам перевода. Более тонкую настройку можно сделать с помощью настраиваемого контроля доступа.

Распространённые варианты конфигурации

Полная блокировка Weblate

Для полной блокировки своего Weblate вы можете использовать параметр REQUIRE_LOGIN, который принудит пользователей входить в систему, одновременно с параметром REGISTRATION_OPEN, который предотвратит регистрацию новых пользователей.

Единый набор разрешений для всего сайта

Для единообразного управления разрешениями в рамках всего сайта просто добавьте пользователей в соответствующие группы: Пользователи (это уже делается по умолчанию механизмом автоматического назначения групп), Рецензенты и Управляющие. И оставьте Публичный доступ ко всем проектам (смотрите раздел Управление доступом к проекту).

По-проектные разрешения

Примечание

Эта функция недоступна на тарифном плане для свободного ПО на облачный хостинг Weblate.

Установите Защищённый или Частный тип доступа к вашим проектам и управляйте пользователями отдельно для каждого проекта через интерфейс Weblate.

Особые разрешения для определённых языков, компонентов или проектов

Примечание

Эта функция недоступна на тарифном плане для свободного ПО на облачный хостинг Weblate.

Членам группы доступны все разрешения, которые присвоены этим группам; таким образом вы можете дать пользователю множество разрешений разом. Создавайте группы и связывайте их с проектами компонентами или языками. Вы также можете добавлять пользователей во множество групп, и разрешения между ними могут пересекаться.

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

Это будет отлично работать без дополнительной настройки, если использовать по-проектные разрешения. Для разрешений на весь экземпляр вы, вероятно, захотите удалить эти разрешения из группы Пользователи или изменить автоматическое назначение всем пользователям этой группы (смотрите раздел Автоматические прикрепления группы).

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

Примечание

При включении списков контроля доступа всем пользователям запрещается доступ к чему бы то ни было в пределах данного проекта, если только вы не добавите для них соответствующие разрешения.

Примечание

Эта функция недоступна на тарифном плане для свободного ПО на облачный хостинг Weblate.

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

Для параметра Контроль доступа доступны следующие варианты:

Публичный

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

Защищённый

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

Частный

Видеть и переводить проект могут только выбранные пользователи

Настраиваемый

Всё управление пользователями осуществляется через интерфейс администратора Django, а не через сам Weblate, смотрите раздел Настраиваемый контроль доступа.

../_images/project-access.png

Разрешение на доступ к проекту даётся либо предоставлением привилегии непосредственно пользователю или группе пользователей в интерфейсе администратора Django, либо с помощью системы управления пользователями на странице проекта, как описано в разделе По-проектная настройка доступа.

Примечание

Даже при включённом контроле доступа о вашем проекте будет доступна следующая краткая информация:

  • Статистика для всего экземпляра, в том числе по каждому проекту в отдельности.

  • Сводка по языкам для всего экземпляра, в том числе по каждому проекту в отдельности.

Автоматические прикрепления группы

В разделе Аутентификация интерфейса администратора Django можно настроить автоматическое назначение групп пользователям (в которые вы хотите их включать), происходящее на основе их адресов электронной почты. Такое автоматическое назначение происходит только при создании учётной записи.

Примечание

При выполнении миграций автоматическое назначение групп Пользователи и Просматривающие всегда создаётся заново. В случае, если вы хотите его отключить, просто задайте для них регулярное выражение ^$ (по которому никогда ничего не найдётся).

Пользователи, роли, группы и разрешения

Модели аутентификации состоят из нескольких объектов:

Разрешение

Индивидуальные разрешения, определённые Weblate. Разрешения нельзя назначать пользователям. Их можно назначать только через назначение ролей.

Роль

Роль определяет набор разрешений. Она позволяет повторно использовать эти наборы в нескольких местах, упрощая их администрирование.

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

Пользователи могут состоять в нескольких группах.

Группа

Группы соединяют роли, пользователей и объекты аутентификации (проекты, языки и списки компонентов).

graph auth { "User" -- "Group"; "Group" -- "Role"; "Role" -- "Permission"; "Group" -- "Project"; "Group" -- "Language"; "Group" -- "Components"; "Group" -- "Component list"; }

Проверка разрешений

При проверке прав доступа пользователя на выполнение какого-либо действия разрешения проверяются в соответствующей области действия; выполняются следующие проверки в указанном порядке:

  1. Группа Список компонентов сопоставляется компоненту или проекту (для доступов уровня проекта), к которому происходит доступ.

  2. Группа Компоненты сопоставляется компоненту или проекту (для доступов уровня проекта), к которому происходит доступ.

  3. Группа Проекты сопоставляется проекту, к которому происходит доступ.

Таким образом, предоставление пользователю доступа к компоненту также предоставляет ему доступ и к содержащему компонент проекту.

Примечание

Используется только первое подходящее правило. Так что, если задать Список компонентов, Компоненты и Проект, то применятся будет только Список компонентов.

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

  1. Группа Языки сопоставляется переводу, к которому происходит доступ; для доступов уровня проекта или компонента она игнорируется.

Подсказка

Для автоматического включения всех языков или проектов используйте переключатели Выбор языка или Выбор проекта.

Проверка доступа к проекту

Пользователь должен быть членом группы, связанной с проектом или с каким-либо компонентом внутри проекта. Чтобы получить доступ к проекту, никаких специальных разрешений не требуется, достаточно только членства в группе (это факт используется умолчательной группой Просматривающие, смотрите раздел Группы и роли по умолчанию).

Проверка доступа к компоненту

Доступ к не ограниченному компоненту пользователь может получить сразу, как только получит доступ к содержащему компонент проекту. Если включён ограниченный доступ, для доступа к компоненту потребуется явное разрешение на этот компонент (или на содержащий его список компонентов).

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

Пользователями и различными группами, в которых они состоят, можно управлять через интерфейс администратора Django, доступ к которому вы можете получить, добавив к адресу сайта Weblate часть /admin/.

По-проектная настройка доступа

Примечание

Эта возможность работает только для проектов, использующих списки контроля доступа, смотрите раздел Управление доступом к проекту.

Пользователи с привилегией Управление доступом к проекту (смотрите раздел Управление доступом) также могут управлять пользователями в проектах (eсли на странице проекта включён контроль доступа). С помощью интерфейса вы можете:

  • Добавлять существующих пользователей в проект

  • Приглашать новых пользователей в проект

  • Изменение разрешений пользователя

  • Отзыв доступа пользователя

Добавлено в версии 3.11.

  • Повторно отправлять по электронной почте приглашения пользователям (при этом аннулируются все ранее отправленные приглашения)

Управление пользователями доступно через меню Управлять любого проекта:

../_images/manage-users.png

Предопределённые группы

Weblate поставляется с предопределённым набором групп для проекта, которые вы можете назначить пользователям.

Translate

Может переводить проект и загружать переводы, сделанные в автономном режиме.

Sources

Может редактировать исходные строки в одноязычных компонентах и информацию об исходной строке.

Languages

Может управлять языками перевода (добавлять или удалять переводы).

Glossary

Может управлять глоссарием (добавлять, удалять или загружать записи в глоссарий).

Memory

Может управлять памятью переводов.

Screenshots

Может управлять снимками экрана (добавлять или удалять их, а также связывать их с исходными строками).

Review

Может одобрять переводы во время рецензирования.

VCS

Может управлять системой контроля версий и имеет доступ к экспортированному репозиторию.

Administration

Даёт все разрешения, доступные в проекте.

Billing

Имеет доступ к платёжной информации (смотрите раздел Тарифный план).

Настраиваемый контроль доступа

Для получения доступа к дополнительным настройкам контроля доступа в проекте можно установить параметр Управление доступом в значение Настраиваемый, чтобы переключиться на использование интерфейса администратора Django вместо интерфейса самого Weblate’а.

Если вы хотите, чтобы это делалось по умолчанию для всех текущих и новых проектов, настройте параметр DEFAULT_ACCESS_CONTROL на управление всеми разрешениями и отношениями через интерфейс администратора Django.

Предупреждение

При включении этого режима Weblate удалит все по-проектные списки контроля доступа, которые он создал для этого проекта. Если вы включаете его, не имея прав администратора, полученных от экземпляра приложения, вы мгновенно потеряете доступ к управлению проектом.

Группы и роли по умолчанию

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

Список привилегий

Тарифный план (смотрите раздел Тарифный план)

Просмотр платёжной информации [Администрирование, Биллинг]

Изменения

Скачивание изменений [Администрирование]

Комментарии

Публикация комментариев [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Удаление комментариев [Администрирование]

Компонент

Правка параметров компонентов [Администрирование]

Блокировка компонента, предотвращает его перевод [Администрирование]

Глоссарий

Добавление записей в глоссарий [Администрирование, Управление глоссарием, Опытный пользователь]

Правка записей глоссария [Администрирование, Управление глоссарием, Опытный пользователь]

Удаление записей из глоссария [Администрирование, Управление глоссарием, Опытный пользователь]

Загрузка записей в глоссарий [Администрирование, Управление глоссарием, Опытный пользователь]

Автоматические предложения

Использование автоматических предложений [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Память переводов

Правка памяти переводов [Администрирование, Управление памятью переводов]

Удаление памяти переводов [Администрирование, Управление памятью переводов]

Проекты

Правка параметров проекта [Администрирование]

Управление доступом к проекту [Администрирование]

Отчёты

Скачивание отчётов [Администрирование]

Снимки экрана

Добавление снимков экрана [Администрирование, Управление снимками экрана]

Правка снимков экрана [Администрирование, Управление снимками экрана]

Удаление снимков экрана [Администрирование, Управление снимками экрана]

Исходные строки

Правка дополнительных свойств строки [Администрирование, Правка источника]

Строки

Добавление новой строки [Администрирование]

Удаление строки [Администрирование]

Игнорирование проваленных проверок [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Правка строк [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Рецензирование строк [Администрирование, Рецензирование строк]

Правка строк, когда предложения являются обязательными [Администрирование, Рецензирование строк]

Правка исходных строк [Администрирование, Правка источника, Опытный пользователь]

Предложения

Принятие предложения [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Добавление предложения [Администрирование, Правка источника, Добавление предложения, Опытный пользователь, Рецензирование строк, Перевод]

Удаление предложения [Администрирование, Опытный пользователь]

Голосование за предложения [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Переводы

Добавление языка для перевода [Администрирование, Опытный пользователь, Управление языками]

Производство автоматического перевода [Администрирование, Управление языками]

Удаление существующего перевода [Администрирование, Управление языками]

Добавление нескольких языков для перевода [Администрирование, Управление языками]

Загрузки

Задание автора загружаемого перевода [Администрирование]

Перезапись существующих строк при загрузке новых [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

Загрузка переводов [Администрирование, Правка источника, Опытный пользователь, Рецензирование строк, Перевод]

СКВ (VCS)

Доступ к внутреннему репозиторию [Администрирование, Доступ к репозиторию, Опытный пользователь, Управление репозиторием]

Коммит изменений во внутренний репозиторий [Администрирование, Управление репозиторием]

Отправка изменений из внутреннего репозитория [Администрирование, Управление репозиторием]

Сброс изменений во внутреннем репозитории [Администрирование, Управление репозиторием]

Просмотр расположения вышестоящего репозитория [Администрирование, Доступ к репозиторию, Опытный пользователь, Управление репозиторием]

Обновление внутреннего репозитория [Администрирование, Управление репозиторием]

Привилегии для всего сайта

Использование интерфейса управления

Добавление новых проектов

Добавление определений языка

Управление определениями языков

Управление группами

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

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

Управление объявлениями

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

Управление списками компонентов

Примечание

Привилегии для всего сайта не предоставляются никаким умолчательным ролям. Они мощны и достаточно близки к статусу суперпользователя. Большинство из них влияют на все проекты вашей установки Weblate.

Список групп

Следующие группы будут созданы после установки (или после выполнения команды setupgroups) и вы можете их изменять. Однако, если вы удалите или переименуете их, то они могут быть воссозданы в процессе миграции на новую версию.

Гости

Определяет разрешения для неаутентифицированных пользователей.

Эта группа содержит только анонимных пользователей (смотрите параметр ANONYMOUS_USER_NAME).

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

Роли по умолчанию: Добавление предложений, Доступ к репозиторию

Просматривающие

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

По умолчанию параметр Автоматические прикрепления группы делает так, что все новые учётные записи при присоединении становятся членами этой группы.

Роли по умолчанию: нет

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

Стандартная группа для всех пользователей.

По умолчанию параметр Автоматические прикрепления группы делает так, что все новые учётные записи при присоединении становятся членами этой группы.

Роли по умолчанию: Опытный пользователь

Рецензенты

Группа для рецензентов (смотрите раздел Рабочие процессы перевода).

Роли по умолчанию: Рецензирование строк

Управляющие

Группа для администраторов.

Роли по умолчанию: Администрирование

Предупреждение

Никогда не удаляйте предопределённые в Weblate группы и пользователей, поскольку это может привести к неожиданным проблемам. Если они вам не нужны, вы можете просто удалить из них все привилегии.