Контроль доступа#

Weblate поставляется с детальной системой привилегий, позволяющей назначать права пользователя для всего экземпляра или в ограниченном объеме.

Простой контроль доступа#

Если вы не администрируете всю установку Weblate и имеете доступ только для управления определенными проектами (например, «Hosted Weblate <https://hosted.weblate.org/>`_), ваши возможности управления контролем доступа ограничены следующими настройками. Если вам не нужна какая-либо сложная настройка, вам этого достаточно.

Контроль доступа к проекту#

Примечание

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

Вы можете ограничить доступ пользователей к отдельным проектам, выбрав другой параметр Контроль доступа. Доступные варианты:

Публичный

Видно всем.

Любой авторизованный пользователь может внести свой вклад.

Репозиторий VCS может быть доступен всем.

Выберите этот вариант для проектов с открытым исходным кодом или если ваш экземпляр Weblate является частным или заблокированным.

Защищённый

Видно всем.

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

Только избранные пользователи могут получить доступ к репозиторию VCS.

Выберите этот вариант, чтобы обеспечить видимость, но при этом контролировать, кто может внести свой вклад.

Частный

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

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

Только избранные пользователи могут получить доступ к репозиторию VCS.

** Выберите это для проектов, которые вообще не должны публиковаться.**

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

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

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

Только избранные пользователи могут получить доступ к репозиторию VCS.

Недоступно на Hosted Weblate.

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

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

Контроль доступа можно изменить на вкладке Доступ конфигурации (УправлениеНастройки) каждого соответствующего проекта.

../_images/project-access.webp

Значение по умолчанию можно изменить с помощью DEFAULT_ACCESS_CONTROL.

Примечание

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

Примечание

Фактический набор разрешений, доступных пользователям по умолчанию в публичных, защищённых и частных проектах, может быть пересмотрен администратором экземпляра Weblate с помощью пользовательских настроек.

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

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

Следующие команды автоматически создаются для всех проектов:

Для`публичных`, защищённых и частных проектов:

Администрирование

Включает все разрешения, доступные для проекта.

Рецензирование (только если включено рецензирование)

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

Только для проектов защищённых и частных:

Перевести

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

Источники

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

Языки

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

Словарь

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

Накопитель

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

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

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

Автоматический перевод

Возможно использовать автоматический перевод.

СКВ (VCS)

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

Выставление счетов

Имеет доступ к выставлению счетов и его настройкам (смотреть раздел Выставление счетов).

../_images/manage-users.webp

Эти возможности доступны на странице Управление доступом, которую можно открыть из меню проекта УправлениеПользователи.

Администраторы команд#

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

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

Новое приглашение пользователя#

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

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

Подсказка

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

Такие же приглашения доступны для всего сайта из management interface на вкладке Пользователи.

Изменено в версии 5.0: Теперь Weblate не создает автоматически учетные записи и не добавляет пользователей в команды. Это происходит только после подтверждения пользователя.

Блокирование пользователей#

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

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

Управление разрешениями для каждого проекта#

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

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

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

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

Примечание

Эта функция недоступна на Hosted Weblate.

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

Самые мощные возможности системы контроля доступа Weblate доступны пока только через интерфейс администратора Django. Вы можете использовать его для управления разрешениями любого проекта. Вам не обязательно переключать его на Пользовательский контроль доступа, чтобы применить его. Однако для его использования у вас должны быть привилегии суперпользователя.

Если вас не интересуют детали реализации, и вы просто хотите создать достаточно простую конфигурацию на основе настроек по умолчанию, или у вас нет доступа ко всей установке Weblate (как на Hosted Weblate), обратитесь к разделу Простой контроль доступа.

Общие настройки#

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

Управление разрешениями по всему сайту#

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

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

Вы также можете предоставить некоторые дополнительные разрешения по своему выбору командам по умолчанию. Например, вы можете дать разрешение на управление снимками экрана всем Пользователям.

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

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

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

Пример:

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

  1. Отзовите разрешение на перевод чешского у всех пользователей. В настройках по умолчанию это можно сделать, изменив Пользователей команды по умолчанию.

    Группа Пользователи#

    Выбор языка

    Как определено

    Языки

    Все, кроме чешского

  1. Добавите специальную команду для переводчиков на чешский.

    Группа Чешские переводчики#

    Роли

    Опытные пользователи

    Выбор проекта

    Все публичные проекты

    Выбор языка

    Как определено

    Языки

    Чешский

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

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

Пользователи, роли, команды и разрешения#

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

Разрешение

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

Роль

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

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

Пользователь может состоять в нескольких командах.

Группа

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

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

Примечание

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

Доступ для просмотра проекта#

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

Доступ для просмотра компонента#

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

Область действия команд#

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

  • Если группа указывает какой-либо Список компонентов, то все разрешения, предоставленные членам этой группы, предоставляются для всех компонентов в списках компонентов, прикреплённых к группе, и доступ без дополнительных разрешений предоставляется для всех проектов, в которых находятся эти компоненты. Компоненты и Проекты игнорируются.

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

  • Если в группе указаны какие-либо Компоненты, то все разрешения, данные членам этой группы, предоставляются для всех компонентов, присоединённых к группе, и доступ без дополнительных разрешений предоставляется для всех проектов, в которых находятся эти компоненты. Проекты игнорируются.

  • В противном случае, если группа указывает какие-либо Проекты, либо прямо перечислив их, либо установив Выбор проекта в значение типа Все публичные проекты, все эти разрешения применяются ко всем проектам, что фактически предоставляет одинаковые разрешения на доступ ко всем проектам unrestricted components.

  • Ограничения, накладываемые группой Языки, применяются отдельно, когда проверяется, имеет ли пользователь доступ к выполнению определённых действий. А именно, они применяются только к действиям, непосредственно связанным с самим процессом перевода, таким как рецензирование, сохранение переводов, добавление предложений и т.д.

Подсказка

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

Пример:

Допустим, есть проект foo с компонентами: foo/bar и foo/baz и следующей группой:

Группа Испанские администраторы-рецензенты#

Роли

Рецензирование строк, Управление репозиторием

Компоненты

фу/бар

Языки

Испанский

Члены этой группы будут иметь следующие разрешения (при условии использования ролей по умолчанию):

  • Общий (просмотровый) доступ ко всему проекту foo, включая оба компонента в нём: foo/bar и foo/baz.

  • Рецензирование строк в испанском переводе foo/bar (не в других местах).

  • Управление VCS для всего репозитория foo/bar, например, коммит ожидающий изменений, сделанных переводчиками для всех языков.

Автоматическое назначение команд#

При редактировании :guilabel:“Team“ можно указать :guilabel:“Automatic assignments“, который представляет собой список регулярных выражений, используемых для автоматического назначения вновь созданных пользователей в команду на основе их адресов электронной почты. Это назначение происходит только при создании учетной записи.

Наиболее часто эта функция используется для назначения всех новых пользователей в некоторую команду по умолчанию. Такое поведение используется для команд по умолчанию Users и Guest (см. Список команд). Используйте регулярное выражение ^.*$ для соответствия всем пользователям.

Другим вариантом использования этой опции может быть предоставление дополнительных привилегий сотрудникам вашей компании по умолчанию. Если предположить, что все они используют корпоративные адреса электронной почты в вашем домене, то это можно сделать с помощью выражения типа ^.*@mycompany.com.

Примечание

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

Примечание

На данный момент не существует способа массового добавления уже существующих пользователей в какую-либо группу через пользовательский интерфейс. Для этого вы можете прибегнуть к использованию функции REST API.

Команды и роли по умолчанию#

После установки создается набор команд по умолчанию (см. Список команд).

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

Список привилегий и встроенных ролей#

Область

Разрешение

Роли

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

Просмотр платёжной информации

Администрирование, Тарифный план

Изменения

Скачивание изменений

Администрация

Комментарии

Публикация комментариев

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

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

Администрация

Разрешить комментарий

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

Компонент

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

Администрация

Блокировка компонента от перевода

Администрация

Словарь

Добавление записей в словарь

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

Правка записей глоссария

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

Удаление записей из глоссария

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

Загрузка записей в словарь

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

Автоматические советы

Использовать автоматические советы

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

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

Правка памяти переводов

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

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

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

Проекты

Правка настроек проекта

Администрация

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

Администрация

Отчёты

Скачивание отчётов

Администрация

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

Добавление снимков экрана

Администрация, Управление снимками экрана

Править снимок экрана

Администрация, Управление снимками экрана

Удалить снимок экрана

Администрация, Управление снимками экрана

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

Правка дополнительных свойств строки

Администрация, Правка источника

Строки

Добавление новой строки

Администрация

Удаление строки

Администрация

Отказ от проверки

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

Правка строк

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

Рецензирование строк

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

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

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

Правка исходных строк

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

Предложения

Принятие предложения

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

Добавление предложения

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

Удаление предложения

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

Голосование за предложения

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

Переводы

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

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

Производство автоматического перевода

Администрация, Автоматический перевод

Удаление существующего перевода

Администрация, Управление языками

Скачать файл перевода

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

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

Администрация, Управление языками

Загрузки

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

Администрация

Перезапись существующих строк при загрузке новых

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

Загрузка переводов

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

СКВ (VCS)

Доступ к внутреннему репозиторию

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

Коммит изменений во внутренний репозиторий

Администрация, Управление репозиторием

Отправка изменений из внутреннего репозитория

Администрация, Управление репозиторием

Сброс изменений во внутреннем репозитории

Администрация, Управление репозиторием

Просмотр расположения вышестоящего репозитория

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

Обновление внутреннего репозитория

Администрация, Управление репозиторием

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

Список команд#

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

Гости

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

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

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

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

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

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

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

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

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

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

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

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

Рецензенты

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

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

Управляющие

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

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

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

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

Дополнительные ограничения доступа#

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

Подсказка

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