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

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

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

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

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

Распространённые настройки

Блокировка Weblate

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

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

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

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

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

Добавление разрешений к языкам, компонентам или проектам

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

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

По-проектный контроль доступа

Примечание

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

Вы можете ограничить доступ пользователей к отдельным проектам. Эта функция включается в блоке Управление доступом конфигурации каждого соответствующего проекта. Она автоматически создаёт для этого проекта несколько групп, смотрите раздел Предопределённые группы.

Для настройки :guilabel: Управление доступом возможны следующие варианты выбора:

Публичный

Проект видят и могут переводить все

Защищённый

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

Частный

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

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

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

../_images/project-access.png

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

Примечание

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

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

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

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

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

Оно может быть настроено в административном интерфейсе Django отдельно для каждой группы (в разделе Аутентификация).

Примечание

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

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

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

Разрешение

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

Роль

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

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

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

Группа

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

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

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

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

  1. С компонентом или проектом сравнивается Список компонентов в поиске соответствия.

  2. С компонентом или проектом сравниваются Компоненты в поиске соответствия.

  3. С проектом сравниваются Проекты в поиске соответствия.

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

Примечание

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

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

4. Languages are matched against the scope of translations if set, if not set, this does not match any language.

Подсказка

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

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

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

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

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

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

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

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

Примечание

Эта возможность работает только для проектов под управлением списка контроля доступа, смотрите раздел По-проектный контроль доступа.

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

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

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

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

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

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

  • Повторно отправлять приглашения по электронной почте, аннулируя все ранее отправленные приглашения

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

../_images/manage-users.png

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

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

Administration

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

Glossary

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

Languages

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

Screenshots

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

Template

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

Translate

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

VCS

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

Review

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

Billing

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

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

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

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

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

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

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

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

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

Изменения

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

Комментарии

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

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

Компонент

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

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

Глоссарий

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

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

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

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

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

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

Проекты

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

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

Отчёты

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

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

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

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

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

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

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

Строки

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

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

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

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

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

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

Предложения

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

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

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

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

Переводы

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

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

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

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

Загрузки

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

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

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

Система контроля версий (VCS)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

Список групп

Следующие группы создаются после установки (или после выполнения команды setupgroups):

Гости

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

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

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

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

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

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

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

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

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

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

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

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

Рецензенты

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

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

Управляющие

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

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

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

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