Контроль доступа#
Weblate поставляется с детальной системой привилегий, позволяющей назначать права пользователя для всего экземпляра или в ограниченном объёме.
Контроль доступа к проекту#
Примечание
Проекты, использующие бесплатный план Libre на Hosted Weblate, всегда являются открытыми. Вы можете переключиться на платный план, если хотите ограничить доступ к своему проекту.
You can limit user’s access to individual projects by selecting a different Контроль доступа setting. Available options are:
- Публичный
Видно всем.
Любой авторизованный пользователь может внести свой вклад.
Репозиторий VCS может быть доступен всем.
Выберите этот вариант для проектов с открытым исходным кодом или если ваш экземпляр Weblate является закрытым или заблокированным.
- Защищённый
Видно всем.
Только избранные пользователи могут внести свой вклад.
Только избранные пользователи могут получить доступ к репозиторию VCS.
Выберите этот вариант, чтобы обеспечить видимость, но при этом контролировать, кто может внести свой вклад.
- Частный
Видно только избранным пользователям.
Только избранные пользователи могут внести свой вклад.
Только избранные пользователи могут получить доступ к репозиторию VCS.
Выберите это для проектов, которые вообще не должны публиковаться.
- Пользовательский
Видно только избранным пользователям.
Только избранные пользователи могут внести свой вклад.
Только избранные пользователи могут получить доступ к репозиторию VCS.
Недоступно на Hosted Weblate.
Вам нужно будет настроить все разрешения, используя Контроль доступа на всём сайте.
Выберите это на своём собственном экземпляре Weblate, если вы хотите определить доступ определённым, тонко настраиваемым способом.
Контроль доступа можно изменить на вкладке «Доступ» конфигурации («Управление» ↓ «Настройки») каждого соответствующего проекта.
Значение по умолчанию можно изменить с помощью DEFAULT_ACCESS_CONTROL
.
Примечание
Даже для частных проектов, некоторая информация о вашем проекте будет раскрыта: статистика и языковая сводка для всего экземпляра будет включать подсчёты для всех проектов, несмотря на настройки контроля доступа. Имя вашего проекта и другая информация не могут быть раскрыты через это.
Примечание
Фактический набор разрешений, доступных пользователям по умолчанию в публичных, защищённых и частных проектах, может быть пересмотрен администратором экземпляра Weblate с помощью пользовательских настроек.
См.также
Управление контролем доступа для каждого проекта#
Пользователи с привилегией к «Управление доступом к проекту» (см. List of privileges) могут управлять пользователями в проектах путём добавления их в команды. Первоначальный набор команд предоставляется Weblate, но можно определить дополнительные команды, обеспечивающие более тонкий контроль доступа. Вы можете ограничить команды языками и назначить им определённые роли доступа (см. List of privileges).
Следующие команды автоматически создаются для всех проектов:
Для`публичных`, защищённых и частных проектов:
- Администрирование
Включает все разрешения, доступные для проекта.
- Рецензирование (только если включено рецензирование)
Может одобрять переводы во время рецензирования.
Только для проектов защищённых и частных:
- Перевести
Может переводить проект и загружать переводы, сделанные в автономном режиме.
- Источники
Может редактировать исходные строки (если это разрешено в настройках проекта) и информацию об исходной строке.
- Языки
Может управлять языками перевода (добавлять или удалять переводы).
- Словарь
Может управлять словарём (добавлять, удалять или загружать записи в словарь).
- Накопитель
Может управлять памятью переводов.
- Снимки экрана
Может управлять снимками экрана (добавлять или удалять их, а также связывать их с исходными строками).
- Автоматический перевод
Возможно использовать автоматический перевод.
- VCS
Может управлять системой контроля версий и имеет доступ к экспортированному репозиторию.
- Выставление счетов
Имеет доступ к выставлению счетов и его настройкам (смотреть раздел Выставление счетов).
Эти возможности доступны на странице Управление доступом, которую можно открыть из меню проекта Управление ↓ Пользователи.
Администраторы команд#
Добавлено в версии 4.15.
У каждой команды может быть администратор, который может добавлять и удалять пользователей в команде. Это полезно, если вы хотите создать самоуправляемые команды.
Inviting new users#
При добавлении существующих пользователей им будет отправлено приглашение для подтверждения. С помощью настройки :REGISTRATION_OPEN администратор может также приглашать новых пользователей по электронной почте. Приглашённые пользователи должны пройти процесс регистрации, чтобы получить доступ к проекту.
Для этого не требуется иметь какие-либо привилегии для всего сайта, достаточно разрешения на управление доступом в рамках проекта (например, членство в команде администраторов).
Подсказка
Если приглашённый пользователь пропустил срок действия приглашения, необходимо создать новое приглашение.
Такие же приглашения доступны для всего сайта из management interface на вкладке Пользователи.
Изменено в версии 5.0: Теперь Weblate не создаёт автоматически учётные записи и не добавляет пользователей в команды. Это происходит только после подтверждения пользователя.
Блокирование пользователей#
Добавлено в версии 4.7.
Если некоторые пользователи плохо ведут себя в вашем проекте, у вас есть возможность заблокировать их вклад. Заблокированный пользователь по-прежнему сможет видеть проект, если у него есть соответствующие разрешения, но он не сможет вносить свой вклад.
Управление разрешениями для каждого проекта#
Вы можете установить для своих проектов статус Protected или Private (см. Контроль доступа к проекту), а также управлять пользователями для каждого проекта в пользовательском интерфейсе Weblate.
По умолчанию это не позволяет Weblate предоставлять доступ, предоставляемый пользователям и просматривающим команды по умолчанию из-за собственной настройки в этих командах. Это не мешает вам предоставлять права доступа к этим проектам в масштабах всего сайта, изменив команды по умолчанию, создав новую или создав дополнительные пользовательские настройки для отдельного компонента, как описано ниже в Контроль доступа на всём сайте.
Одним из основных преимуществ управления правами доступа через пользовательский интерфейс Weblate является то, что вы можете делегировать его другим пользователям, не наделяя их привилегиями суперпользователя. Для этого добавьте их в команду Администрации проекта.
Контроль доступа на всём сайте#
Примечание
Эта функция недоступна на Hosted Weblate.
Система разрешений построена на основе команд и ролей. Роли определяют набор разрешений, а команды назначают их пользователям и переводчикам. Для получения более подробной информации смотрите раздел Пользователи, роли, команды и разрешения.
The most powerful features of the Weblate’s access control system can be configured in the Интерфейс управления. You can use it to manage permissions of any project. You don’t necessarily have to switch it to Custom access control to utilize it. However you must have superuser privileges in order to use it.
Если вам не интересны детали реализации, и вы хотите создать достаточно простую конфигурацию на основе значений по умолчанию или у вас нет доступа ко всему установленному Weblate (например, на Hosted Weblate), пожалуйста, обратитесь к разделу Управление контролем доступа для каждого проекта в документации.
Управление разрешениями по всему сайту#
Чтобы управлять разрешениями сразу для всего экземпляра, добавьте пользователей в соответствующие команды по умолчанию:
Пользователи (по умолчанию это делается с помощью автоматического назначения команды).
Рецензенты (если вы используете процесс рецензирования с выделенными рецензентами).
Управляющие (если вы хотите делегировать большую часть операций по управлению кому-то другому).
Вы должны сохранять все проекты настроенными как публичные (смотрите раздел Контроль доступа к проекту), иначе разрешения, предоставляемые участием в командах пользователей и рецензенты, не будут иметь никакого эффекта.
Вы также можете предоставить некоторые дополнительные разрешения по своему выбору командам по умолчанию. Например, вы можете дать разрешение на управление снимками экрана всем пользователям.
Вы также можете определить некоторые новые пользовательские команды. Если вы хотите продолжать управлять всеми разрешениями на сайте для этих команд, выберите соответствующее значение для «Выбор проекта» (например, «Все проекты» или «Все открытые проекты»).
Особые разрешения для определённых языков, компонентов или проектов#
Вы можете создавать собственные специальные команды для управления разрешениями для отдельных объектов, таких как языки, компоненты и проекты. Хотя эти команды могут предоставлять только дополнительные привилегии, вы не можете отменить разрешение, предоставленное командами для всего сайта или проекта, добавив другую пользовательскую команду.
Пример:
Если вы хотите (по какой-либо причине) разрешить перевод на определённый язык (допустим, чешский) только закрытому набору надёжных переводчиков, а переводы на другие языки оставить открытыми, вам придётся сделать следующее:
Отзовите разрешение на перевод чешского у всех пользователей. В настройках по умолчанию это можно сделать, изменив пользователей команды по умолчанию.
# Выбор языка
Как определено
Языки
Все, кроме чешского
Добавите специальную команду для переводчиков на чешский.
# Роли
Опытные пользователи
Выбор проекта
Все публичные проекты
Выбор языка
Как определено
Языки
Чешский
Добавьте пользователей, которым вы хотите предоставить разрешения, в эту команду.
Как вы видите, управление разрешениями таким способом является мощным, но может быть довольно утомительной работой. Вы не можете делегировать её другому пользователю, если только не предоставите права суперпользователя.
Пользователи, роли, команды и разрешения#
Модели авторизации состоят из нескольких объектов:
- Разрешение
Индивидуальное разрешение, определённое в самом Weblate. Разрешения нельзя назначать непосредственно пользователям: это можно сделать только через назначение ролей.
- Роль
Роль определяет набор разрешений. Она позволяет использовать эти наборы повторно в разных местах, что упрощает их администрирование.
- Пользователь
Пользователь может состоять в нескольких командах.
- Группа
Группу соединяют роли, пользователей, и объекты авторизации (проекты, языки, и списки компонентов).
Примечание
Группа может не иметь назначенных ей ролей, в этом случае предполагается доступ к просмотру проекта любым желающим (см. ниже).
Доступ для просмотра проекта#
Пользователь должен быть членом группы, связанной с проектом или с каким-либо компонентом внутри проекта. Чтобы получить доступ к просмотру, никаких специальных разрешений не требуется, достаточно только членства в группе (этот факт используется для создаваемой по умолчанию группы просматривающих, смотрите раздел default-groups).
Доступ для просмотра компонента#
Доступ к не ограниченным компонентам пользователь может получить сразу, как только получит доступ к компонентам проекта (и будет иметь все разрешения, которые пользователь получил для проекта). Если включён ограниченный доступ, для доступа к компоненту потребуется явное разрешение на компонент (или на содержащий его список компонентов).
Область действия команд#
Область действия разрешений, назначенных ролями в группах, применяется по следующим правилам:
Если группа указывает какой-либо список компонентов, то все разрешения, предоставленные членам этой группы, предоставляются для всех компонентов в списках компонентов, прикреплённых к группе, и доступ без дополнительных разрешений предоставляется для всех проектов, в которых находятся эти компоненты. Компоненты и проекты игнорируются.
Использование огромных списков компонентов может сказаться на производительности, поэтому вместо этого рассмотрите возможность предоставления доступа через проекты.
Если в группе указаны какие-либо компоненты, то все разрешения, данные членам этой группы, предоставляются для всех компонентов, присоединённых к группе, и доступ без дополнительных разрешений предоставляется для всех проектов, в которых находятся эти компоненты. Проекты игнорируются.
В противном случае, если группа указывает какие-либо проекты, либо прямо перечислив их, либо установив выбор проекта в значение типа «Все публичные проекты», все эти разрешения применяются ко всем проектам, что фактически предоставляет одинаковые разрешения на доступ ко всем проектам unrestricted components.
Ограничения, накладываемые группой языков, применяются отдельно, когда проверяется, имеет ли пользователь доступ к выполнению определённых действий. А именно, они применяются только к действиям, непосредственно связанным с самим процессом перевода, таким как рецензирование, сохранение переводов, добавление предложений и т.д.
Подсказка
Для автоматического включения всех языков или проектов используйте переключатели Выбор языка или Выбор проекта.
Пример:
Допустим, есть проект
foo
с компонентами:foo/bar
иfoo/baz
и следующей группой:
# Роли
Рецензирование строк, Управление репозиторием
Компоненты
foo/bar
Языки
Испанский
Члены этой группы будут иметь следующие разрешения (при условии использования ролей по умолчанию):
Общий (просмотровый) доступ ко всему проекту
foo
, включая оба компонента в нём:foo/bar
иfoo/baz
.Рецензирование строк в испанском переводе
foo/bar
(не в других местах).Управление VCS для всего репозитория
foo/bar
, например, коммит ожидающий изменений, сделанных переводчиками для всех языков.
Автоматическое назначение команд#
При редактировании команды можно указать автоматическое назначение, которое представляет собой список регулярных выражений, используемых для автоматического назначения вновь созданных пользователей в команду на основе их адресов электронной почты. Это назначение происходит только при создании учётной записи.
Наиболее часто эта функция используется для назначения всех новых пользователей в некоторую команду по умолчанию. Такое поведение используется для команд по умолчанию пользователей и гостей (см. Список команд). Используйте регулярное выражение ^.*$
для соответствия всем пользователям.
Другим вариантом использования этой опции может быть предоставление дополнительных привилегий сотрудникам вашей компании по умолчанию. Если предположить, что все они используют корпоративные адреса электронной почты в вашем домене, то это можно сделать с помощью выражения типа ^.*@моякомпания.com
.
Примечание
При выполнении миграций автоматическое назначение для групп пользователей и просматривающих всегда пересоздаётся при переходе с одной версии Weblate на другую. В случае, если вы хотите его отключить, просто задайте для него регулярное выражение ^$
(которому не будет соответствовать ничего).
Примечание
На данный момент не существует способа массового добавления уже существующих пользователей в какую-либо группу через пользовательский интерфейс. Для этого вы можете прибегнуть к использованию функции REST API.
Команды и роли по умолчанию#
После установки создаётся набор команд по умолчанию (см. Список команд).
Эти роли и группы создаются во время установки. Встроенные роли всегда приводятся в актуальное состояние при процессе миграции базы данных во время обновления. Вы не можете изменить их, пожалуйста, создайте новую роль, если вы хотите определить свой собственный набор разрешений.
List of privileges#
Область |
Разрешение |
Built-in roles |
---|---|---|
Тарифный план (смотрите раздел Выставление счетов) |
Просмотр платёжной информации |
Administration, Billing |
Изменения |
Скачивание изменений |
Administration |
Комментарии |
Публикация комментариев |
Administration, Edit source, Power user, Review strings, Translate |
Удаление комментариев |
Administration |
|
Разрешить комментарий |
Administration, Review strings |
|
Компонент |
Правка настроек компонентов |
Administration |
Блокировка компонента от перевода |
Administration, Manage repository |
|
Словарь |
Добавление записей в словарь |
Administration, Manage glossary, Power user |
Правка записей словаря |
Administration, Manage glossary, Power user |
|
Удаление записей из словаря |
Administration, Manage glossary, Power user |
|
Загрузка записей в словарь |
Administration, Manage glossary, Power user |
|
Автоматические советы |
Использовать автоматические советы |
Administration, Edit source, Power user, Review strings, Translate |
Память переводов |
Правка памяти переводов |
Administration, Manage translation memory |
Удаление памяти переводов |
Administration, Manage translation memory |
|
Проекты |
Правка настроек проекта |
Administration |
Управление доступом к проекту |
Administration |
|
Отчёты |
Скачивание отчётов |
Administration |
Снимки экрана |
Добавление снимков экрана |
Administration, Manage screenshots |
Править снимок экрана |
Administration, Manage screenshots |
|
Удалить снимок экрана |
Administration, Manage screenshots |
|
Исходные строки |
Правка дополнительных свойств строки |
Administration, Edit source |
Строки |
Добавление новой строки |
Administration |
Удаление строки |
Administration |
|
Отказ от проверки |
Administration, Edit source, Power user, Review strings, Translate |
|
Правка строк |
Administration, Edit source, Power user, Review strings, Translate |
|
Рецензирование строк |
Administration, Review strings |
|
Правка строк, когда предложения являются обязательными |
Administration, Review strings |
|
Правка исходных строк |
Administration, Edit source, Power user |
|
Предложения |
Принятие предложения |
Administration, Edit source, Power user, Review strings, Translate |
Добавление предложения |
Administration, Edit source, Add suggestion, Power user, Review strings, Translate |
|
Удаление предложения |
Administration, Power user |
|
Голосование за предложения |
Administration, Edit source, Power user, Review strings, Translate |
|
Переводы |
Добавление языка для перевода |
Administration, Power user, Manage languages |
Производство автоматического перевода |
Administration, Automatic translation |
|
Удаление существующего перевода |
Administration, Manage languages |
|
Скачать файл перевода |
Administration, Edit source, Access repository, Power user, Review strings, Translate, Manage languages |
|
Добавление нескольких языков для перевода |
Administration, Manage languages |
|
Загрузки |
Задание автора загружаемого перевода |
Administration |
Перезапись существующих строк при загрузке новых |
Administration, Edit source, Power user, Review strings, Translate |
|
Загрузка переводов |
Administration, Edit source, Power user, Review strings, Translate |
|
VCS |
Доступ к внутреннему репозиторию |
Administration, Access repository, Power user, Manage repository |
Коммит изменений во внутренний репозиторий |
Administration, Manage repository |
|
Отправка изменений из внутреннего репозитория |
Administration, Manage repository |
|
Сброс изменений во внутреннем репозитории |
Administration, Manage repository |
|
Просмотр расположения вышестоящего репозитория |
Administration, Access repository, Power user, Manage repository |
|
Обновление внутреннего репозитория |
Administration, Manage repository |
|
Привилегии для всего сайта |
Использование интерфейса управления |
|
Добавление новых проектов |
||
Добавление определений языка |
||
Управление определениями языков |
||
Управление пользователями |
||
Управление пользователями |
||
Управление ролями |
||
Управление объявлениями |
||
Управление памятью переводов |
||
Управление автоматизированным переводом |
||
Управление списками компонентов |
||
Управление тарифами |
Примечание
Привилегии для всего сайта не предоставляются никаким умолчательным ролям. Они мощны и достаточно близки к статусу суперпользователя. Большинство из них влияют на все проекты вашей установки Weblate.
List of built-in roles#
- Администрация
View billing info, Download changes, Post comment, Delete comment, Resolve comment, Edit component settings, Lock component, preventing translations, Add glossary entry, Delete glossary entry, Edit glossary entry, Upload glossary entries, Use automatic suggestions, Delete translation memory, Edit translation memory, Edit project settings, Manage project access, Download reports, Add screenshot, Delete screenshot, Edit screenshot, Edit additional string info, Accept suggestion, Add suggestion, Delete suggestion, Vote on suggestion, Add language for translation, Add several languages for translation, Perform automatic translation, Delete existing translation, Download translation file, Add new string, Dismiss failing check, Remove a string, Edit strings, Edit string when suggestions are enforced, Review strings, Edit source strings, Define author of uploaded translation, Overwrite existing strings with upload, Upload translations, Access the internal repository, Commit changes to the internal repository, Push change from the internal repository, Reset changes in the internal repository, Update the internal repository, View upstream repository location
- Edit source
Post comment, Use automatic suggestions, Edit additional string info, Accept suggestion, Add suggestion, Vote on suggestion, Download translation file, Dismiss failing check, Edit strings, Edit source strings, Overwrite existing strings with upload, Upload translations
- Add suggestion
Add suggestion
- Access repository
Download translation file, Access the internal repository, View upstream repository location
- Manage glossary
Add glossary entry, Delete glossary entry, Edit glossary entry, Upload glossary entries
- Power user
Post comment, Add glossary entry, Delete glossary entry, Edit glossary entry, Upload glossary entries, Use automatic suggestions, Accept suggestion, Add suggestion, Delete suggestion, Vote on suggestion, Add language for translation, Download translation file, Dismiss failing check, Edit strings, Edit source strings, Overwrite existing strings with upload, Upload translations, Access the internal repository, View upstream repository location
- Review strings
Post comment, Resolve comment, Use automatic suggestions, Accept suggestion, Add suggestion, Vote on suggestion, Download translation file, Dismiss failing check, Edit strings, Edit string when suggestions are enforced, Review strings, Overwrite existing strings with upload, Upload translations
- Translate
Post comment, Use automatic suggestions, Accept suggestion, Add suggestion, Vote on suggestion, Download translation file, Dismiss failing check, Edit strings, Overwrite existing strings with upload, Upload translations
- Manage languages
Add language for translation, Add several languages for translation, Delete existing translation, Download translation file
- Automatic translation
Perform automatic translation
- Manage translation memory
Delete translation memory, Edit translation memory
- Manage screenshots
Add screenshot, Delete screenshot, Edit screenshot
- Manage repository
Lock component, preventing translations, Access the internal repository, Commit changes to the internal repository, Push change from the internal repository, Reset changes in the internal repository, Update the internal repository, View upstream repository location
- Billing
View billing info
- Add new projects
Add new projects
Список команд#
Следующие группы будут созданы после установки (или после выполнения команды setupgroups
) и вы можете их изменять. Однако, если вы удалите или переименуете их, то они могут быть воссозданы в процессе миграции на новую версию.
- Гости
Определяет разрешения для неавторизованных пользователей.
Эта группа содержит только анонимных пользователей (смотрите параметр
ANONYMOUS_USER_NAME
).Вы можете удалить роли из этой группы, чтобы ограничить разрешения для неавторизированных пользователей.
Роли по умолчанию: Добавление предложений, Доступ к репозиторию
- Просматривающие
Эта роль обеспечивает видимость публичных проектов для всех пользователей. По умолчанию, членами этой группы являются все пользователи.
По умолчанию автоматическое назначение команды делает все новые учётные записи членами этой команды при их присоединении.
Роли по умолчанию: нет
- Пользователи
Стандартная группа для всех пользователей.
По умолчанию автоматическое назначение команды делает все новые учётные записи членами этой команды при их присоединении.
Роли по умолчанию: Опытный пользователь
- Рецензенты
Группа для рецензентов (смотрите раздел Рабочие процессы перевода).
Роли по умолчанию: Рецензирование строк
- Управляющие
Группа для администраторов.
Роли по умолчанию: Администрирование
Предупреждение
Никогда не удаляйте предопределённые в Weblate группы и пользователей, поскольку это может привести к неожиданным проблемам! Если они вам не нужны, вы можете просто удалить из них все привилегии.
Дополнительные ограничения доступа#
Если вы хотите использовать вашу установку Weblate менее публично, т.е. допускать новых пользователей только по приглашениям, это можно сделать, настроив Weblate таким образом, чтобы доступ к нему имели только известные пользователи. Для этого вы можете установить REGISTRATION_OPEN
в False
, чтобы предотвратить регистрацию любых новых пользователей, и установить REQUIRE_LOGIN
в /.*
, чтобы требовать авторизацию для доступа ко всем страницам сайта. В принципе, это способ заблокировать установку Weblate.
Подсказка
Вы можете использовать встроенный Inviting new users для добавления новых пользователей.