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

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

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

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

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

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

Примечание

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

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

Публичный

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

Защищённый

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

Приватный

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

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

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

Управление доступом можно изменить на вкладке Доступ параметров (УправлениеПараметры) каждого соответствующего проекта.

../_images/project-access.png

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

Примечание

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

Примечание

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

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

При включённом контроле доступа Custom, Weblate удалит все special groups, которые он создал для выбранного проекта. Если вы делаете это без прав администратора для всего экземпляра Weblate, вы мгновенно потеряете доступ к управлению проектом.

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

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

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

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

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

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

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

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

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

Перевести

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

Источники

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

Языки

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

Глоссарий

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

Накопитель

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

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

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

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

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

СКВ (VCS)

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

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

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

../_images/manage-users.png

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

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

Also, besides adding an existing user to the project, it is possible to invite new ones. Any new user will be created immediately, but the account will remain inactive until signing in with a link in the invitation sent via an e-mail. It is not required to have any site-wide privileges in order to do so, access management permission on the project’s scope (e.g. a membership in the Administration team) would be sufficient.

Подсказка

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

Добавлено в версии 3.11: Есть возможность повторной отправки email с пользовательскими приглашениями (аннулирование любого ранее отправленного приглашения).

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

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

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

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

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

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

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

One of the main benefits of managing permissions through the Weblate user interface is that you can delegate it to other users without giving them the superuser privilege. In order to do so, add them to the Administration team of the project.

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

Примечание

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

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

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

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

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

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

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

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

  • Пользователи (это делается по умолчанию с помощью automatic group assignment).

  • Рецензенты (если вы используете review workflow с выделенными рецензентами).

  • Управляющие (если вы хотите делегировать большую часть операций по управлению кому-то другому).

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

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

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

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

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

Пример:

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

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

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

    Выбор языка

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

    Языки

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

  1. Добавлена специальная группа для чешских переводчиков.

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

    Роли

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

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

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

    Выбор языка

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

    Языки

    Чешский

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

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

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

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

Разрешение

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

Роль

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

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

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

Группа

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

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

Примечание

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

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

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

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

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

Область действия групп

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

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

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

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

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

Подсказка

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

Пример:

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

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

Роли

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

Компоненты

foo/bar

Языки

Испанский

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

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

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

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

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

В нижней части страницы редактирования Группа в Django admin interface, вы можете указать Автоматическое назначение групп, которое представляет собой список регулярных выражений, используемых для автоматического назначения вновь созданных пользователей в группу на основе их адресов электронной почты. Это назначение происходит только при создании учётной записи.

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

Примечание

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

Примечание

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

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

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

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

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

Область

Разрешение

Роли

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

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

Administration, Billing

Изменения

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

Administration

Комментарии

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

Administration, Edit source, Power user, Review strings, Translate

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

Administration

Resolve comment

Administration, Review strings

Компонент

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

Administration

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

Administration

Глоссарий

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

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

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

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

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

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

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

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

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

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

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

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

Manage machinery

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

Примечание

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

Список групп

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

Гости

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

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

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

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

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

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

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

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

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

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

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

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

Рецензенты

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

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

Управляющие

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

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

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

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

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

If you want to use your Weblate installation in a less public manner, i.e. allow new users on an invitational basis only, it can be done by configuring Weblate in such a way that only known users have an access to it. In order to do so, you can set REGISTRATION_OPEN to False to prevent registrations of any new users, and set REQUIRE_LOGIN to /.* to require signing in to access all the site pages. This is basically the way to lock your Weblate installation.

Подсказка

You can use built-in Новое приглашение пользователя to add new users.