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

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

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

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

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

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

Примечание

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

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

Публичный

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

Защищённый

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

Приватный

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

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

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

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

../_images/project-access.png

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

Примечание

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

Примечание

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

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

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

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

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

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

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

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

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

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

Перевести

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

Источники

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

Языки

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

Словарь

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

Накопитель

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

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

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

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

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

СКВ (VCS)

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

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

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

../_images/manage-users.png

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

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

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

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

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

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

Подсказка

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

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

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

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

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

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

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

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

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

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

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

Примечание

Эта функция недоступна на тарифном плане проектов, работающих по плану свободного ПО на облачном хостинге 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"; }

Примечание

A team can have no roles assigned to it, in that case access to browse the project by anyone is assumed (see below).

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

A user has to be a member of a team linked to the project, or any component inside that project. Having membership is enough, no specific permissions are needed to browse the project (this is used in the default Viewers team, see List of teams).

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

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

Scope of teams

The scope of the permission assigned by the roles in the teams are applied by the following rules:

  • If the team specifies any Component list, all the permissions given to members of that team are granted for all the components in the component lists attached to the team, and an access with no additional permissions is granted for all the projects these components are in. Components and Projects are ignored.

  • If the team specifies any Components, all the permissions given to the members of that team are granted for all the components attached to the team, and an access with no additional permissions is granted for all the projects these components are in. Projects are ignored.

  • Otherwise, if the team specifies any Projects, either by directly listing them or by having Projects selection set to a value like All public projects, all those permissions are applied to all the projects, which effectively grants the same permissions to access all projects unrestricted components.

  • The restrictions imposed by a team’s Languages are applied separately, when it’s verified if a user has an access to perform certain actions. Namely, it’s applied only to actions directly related to the translation process itself like reviewing, saving translations, adding suggestions, etc.

Подсказка

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

Пример:

Let’s say there is a project foo with the components: foo/bar and foo/baz and the following team:

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

Роли

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

Компоненты

foo/bar

Языки

Испанский

Members of that team will have following permissions (assuming the default role settings):

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

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

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

Automatic team assignments

On the bottom of the Group editing page in the Django admin interface, you can specify Automatic team assignments, which is a list of regular expressions used to automatically assign newly created users to a team based on their e-mail addresses. This assignment only happens upon account creation.

The most common use-case for the feature is to assign all new users to some default team. In order to do so, you will probably want to keep the default value (^.*$) in the regular expression field. Another use-case for this option might be to give some additional privileges to employees of your company by default. Assuming all of them use corporate e-mail addresses on your domain, this can be accomplished with an expression like ^.*@mycompany.com.

Примечание

Automatic team assignment to Users and Viewers is always recreated when upgrading from one Weblate version to another. If you want to turn it off, set the regular expression to ^$ (which won’t match anything).

Примечание

As for now, there is no way to bulk-add already existing users to some team via the user interface. For that, you may resort to using the REST API.

Default teams and roles

After installation, a default set of teams is created (see List of teams).

These roles and teams are created upon installation. The built-in roles are always kept up to date by the database migration when upgrading. You can’t actually change them, please define a new role if you want to define your own set of permissions.

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

Область

Разрешение

Роли

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

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

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

Изменения

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

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

Комментарии

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

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

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

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

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

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

Компонент

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

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

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

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

Словарь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проекты

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

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

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

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

Отчёты

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

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

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

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

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

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

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

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

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

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

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

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

Строки

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

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

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

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

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

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

Правка строк

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

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

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

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

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

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

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

Предложения

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

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

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

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

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

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

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

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

Переводы

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

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

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

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

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

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

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

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

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

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

Загрузки

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

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

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

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

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

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

СКВ (VCS)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

List of teams

The following teams are created upon installation (or after executing setupgroups) and you are free to modify them. The migration will, however, re-create them if you delete or rename them.

Гости

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

This team only contains anonymous users (see ANONYMOUS_USER_NAME).

You can remove roles from this team to limit permissions for non-authenticated users.

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

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

This role ensures visibility of public projects for all users. By default, all users are members of this team.

By default, automatic team assignment makes all new accounts members of this team when they join.

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

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

Default team for all users.

By default, automatic team assignment makes all new accounts members of this team when they join.

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

Рецензенты

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

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

Управляющие

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

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

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

Never remove the predefined Weblate teams and users as this can lead to unexpected problems! If you have no use for them, you can removing all their privileges instead.

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

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

Подсказка

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