Керування доступом

Змінено в версії 3.0: До версії Weblate 3.0 систему прав доступу було засновано на Django, але тепер її побудовано окремо для Weblate. Якщо ви користуєтеся застарілою версією зверніться до документації для вашої версії.

Weblate постачається із системою прав доступу із багатьма рівнями, які надають змогу визначати права доступу користувача для усього екземпляра системи або для певного її складника.

Систему прав доступу засновано на групах і ролях, де ролі визначають набір прав доступу, а групи пов’язують їх із користувачами та перекладами, див. Користувачі, ролі, групи і права доступу, щоб дізнатися більше.

Після встановлення буде створено типовий набір груп, і ви зможете скористатися ними для визначення ролей користувачів для усього встановленого екземпляра (див. Типові групи і ролі). Крім того, якщо увімкнено Керування доступом на рівні проєкту, ви зможете пов’язувати користувачів із специфічними проєктами перекладу. Прискіпливіше налаштовування можна виконати за допомогою розділу Нетипове керування доступом.

Типові налаштування

Блокування Weblate

Щоб повністю заблокувати Weblate, ви можете скористатися REQUIRE_LOGIN, щоб змусити користувачів входити до системи та REGISTRATION_OPEN, щоб запобігти новим реєстраціям користувачів.

Права доступу на рівні сайта

Щоб виконати керування правами доступу для усього екземпляра, просто додайте користувачів до груп Users (ця дія виконується типово за допомогою Автоматичні призначення груп), Reviewers та Managers. Усі проєкти налаштуйте як Public (див. Керування доступом на рівні проєкту).

Права доступу на рівні проєктів

Примітка

Ця функція недоступна для проєктів, які використовують план Libre на Hosted Weblate.

Налаштуйте ваші проєкти як Protected або Private і керуйте користувачами окремих проєктів за допомогою інтерфейсу Weblate.

Нетипові права доступу до мов, компонентів або проєктів

Примітка

Ця функція недоступна для проєктів, які використовують план Libre на Hosted Weblate.

Учасникам надаються будь-які права доступу, які пов’язано із групами, у яких вони перебувають, тому ви можете надати користувачу декілька прав доступу одночасно. Створіть групи і пов’яжіть їх із проєктом, складником або мовою. Ви можете додати користувача до декількох груп — права доступу у групах можуть перекриватися.

Надання будь-яких вибраних прав доступу на основі проєкту, складника або мови. Для цього створіть групу (наприклад, Czech translators) і налаштуйте її для заданого ресурсу. Усі призначені права доступу для вибраних ресурсів буде пов’язано із учасниками цієї групи.

Це працюватиме без додаткових налаштувань, якщо використовується обмеження прав доступу на рівні проєкту. Щоб визначити права доступу на рівні усього екземпляра Weblate, вам, ймовірно, слід вилучити ці права доступу з групи Users або змінити автоматичне пов’язування усіх користувачів із цією групою (див. Автоматичні призначення груп).

Керування доступом на рівні проєкту

Примітка

Якщо увімкнено керування доступом, усім користувачам буде заборонено доступ до усіх даних у вказаному проєкті, якщо ви явним чином не дозволите такий доступ.

Примітка

Ця функція недоступна для проєктів, які використовують план Libre на Hosted Weblate.

Ви можете обмежити доступ користувача до окремих проєктів. Ця можливість вмикається вибором іншого варіанта керування доступом на вкладці Доступ у налаштуваннях відповідного проєкту. У відповідь буде автоматично створено декілька груп для цього проєкту, див. Попередньо визначені групи.

Для параметра Керування доступом можна встановити такі значення:

Відкритий

Доступний до перегляду усіма, придатний до перекладу користувачами, які увійшли до системи

Захищений

Доступний до перегляду усіма, але придатний до перекладу лише вибраними користувачами

Приватний

Доступний до перегляду і перекладу лише вибраним користувачам

Власний

Записами користувачів, замість Weblate, керує адміністратор Django, див. Нетипове керування доступом.

../_images/project-access.png

Щоб дозволити доступ до цього проєкту, вам слід додати права доступу або безпосередньо для запису користувача або групи користувачів у адміністративному інтерфейсі Django або за допомогою керування записами користувачів на сторінці проєкту, як це описано у розділі Керування правами доступу на рівні проєкту.

Примітка

Навіть якщо керування доступом увімкнено, буде доступною деяка загальна інформація щодо вашого проєкту:

  • Статистика щодо усього екземпляра Weblate включено із обліковими даними для усіх проєктів.

  • Резюме щодо мов для усього екземпляра Weblate, включно із числовими даними для усіх проєктів.

Автоматичні призначення груп

За допомогою сторінки Authentication адміністративного інтерфейсу Django записи користувачів можна пов’язати із групами на основі адрес електронної пошти. Таку прив’язку достатньо виконати під час створення облікового запису.

Примітка

Автоматична прив’язка до груп для груп Users і Viewers виконуватиметься завжди при перенесенні даних. Якщо ви хочете вимкнути її, встановіть для формального виразу прив’язки значення ^$, якому не відповідає жоден рядок.

Користувачі, ролі, групи і права доступу

Моделі розпізнавання складаються з декількох об’єктів:

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

Персональні права доступу, які визначаються Weblate. Ви не можете визначати права доступу для користувачів — це завдання може бути виконане лише за допомогою призначення ролей.

Роль

Роль визначає набір прав доступу. За допомогою ролі ви можете використовувати однакові набори прав доступу у декількох місцях. Ролі також спрощують адміністрування.

Користувач

Користувачі можуть бути учасниками декількох груп одночасно.

Група

Групи поєднують об’єкти ролей, користувачів та розпізнавання (проєкти, мови і списки складників).

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

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

Кожного разу, коли виконується перевірка прав доступу для визначення того, чи може певний користувач виконувати вказану дію, враховується область дії, а перевірки застосовуються у такому порядку:

  1. Установлюється відповідність групи Список складників складнику або проєкту (для доступу на рівні проєкту).

  2. Установлюється відповідність групи Список складників складнику або проєкту (для доступу на рівні проєкту).

  3. Установлюється відповідність групи Проєкти проєкту для доступу.

Таким чином, надання доступу до складника автоматично надає користувачеві доступу до проєкту, у якому він міститься.

Примітка

Використовується лише перше правило. Отже, якщо встановлено значення усіх параметрів — Список складників, Складники і Проєкт, — застосовано буде лише параметр Список складників.

Під час перевірки прав доступу до перекладу виконується додатковий крок:

  1. Установлюється відповідність групи Мови щодо доступних перекладів; буде проігноровано для доступу на рівні складників або проєктів.

Підказка

Для автоматизації включення усіх мов або проєктів ви можете скористатися пунктами Вибір мови та Вибір проєкту.

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

Користувач має бути учасником групи, пов’язаної із проєктом або будь-яким складником у проєкті. Участі достатньо — для доступу до проєкту не потрібні якісь особливі права доступу (це використано у типовій групі Переглядачі, див. Типові групи і ролі).

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

Користувач отримує доступ до необмеженого складника, щойно він отримує доступ до проєкту, у якому він міститься. Із увімкненим параметром Обмежений доступ доступ до складника потребує явного доступу до складника (або списку складників, який його містить).

Керування користувачами і групами

Керувати усіма користувачами та групами, учасниками яких вони є, можна за допомогою адміністративного інтерфейсу Django, доступного за адресою, яку можна отримати, дописавши /admin/ до адреси сайта Weblate.

Керування правами доступу на рівні проєкту

Примітка

Ця можливість працює лише для проєктів із керуванням доступом, див. Керування доступом на рівні проєкту.

Користувачі з правами доступу Керування доступом до проєкту (див. Керування доступом) можуть також керувати записами користувачів у проєктах із увімкненим за допомогою сторінки проєкту керуванням доступом. За допомогою інтерфейсу ви можете виконувати такі дії:

  • Додавання наявних користувачів до проєкту

  • Запрошення нових користувачів до проєкту

  • Зміна прав доступу користувачів

  • Відкликання доступу користувачів

Нове в версії 3.11.

  • Повторно надіслати запрошення користувачам електронною поштою (скасовує будь-які раніше надіслані запрошення)

Керувати користувачами можна за допомогою меню Керувати проєкту:

../_images/manage-users.png

Попередньо визначені групи

Weblate постачається із попередньо визначеним набором груп для проєкту. Групи з цього набору можна пов’язувати із записами користувачів.

Translate

Може перекладати проєкт і вивантажувати виконані поза межами вебредактора переклади.

Sources

Може редагувати початкові рядки у Одномовні складники і дані щодо початкових рядків.

Languages

Може керувати мовами перекладу (додавати або вилучати переклади).

Glossary

Може змінювати глосарій (додавати або вилучати записи, а також вивантажувати дані).

Memory

Може керувати пам’яттю перекладів.

Screenshots

Може керувати знімками вікон (додавати і вилучати знімки, а також пов’язувати зніми із початковими рядками).

Review

Може затверджувати переклади у процесі рецензування.

VCS

Може керувати системою керування версіями і має доступ до експортованого сховища початкового коду.

Administration

Має усі можливі права доступу до проєкту.

Billing

Має доступ до даних щодо фінансових рахунків (див. Оплата).

Нетипове керування доступом

Щоб отримати доступ до додаткових засобів керування доступом у проєкті, ви можете встановити для параметра Керування доступом значення Нетипове, щоб перемкнутися на використання інтерфейсу адміністрування Django замість того, який надається Weblate.

Якщо ви хочете зробити такі налаштування типовими для усіх поточних і нових проєктів, встановіть змінну DEFAULT_ACCESS_CONTROL для адміністрування усіх прав доступу та зв’язків за допомогою інтерфейсу адміністрування Django.

Попередження

Якщо буде увімкнено цей варіант, Weblate вилучить усі правила Керування доступом на рівні проєкту, які було створено для цього проєкту. Якщо ви виконаєте цю дію без адміністративних прав доступу до екземпляра, ви негайно втратите доступ до керування проєктом.

Типові групи і ролі

Ці ролі та групи створюються під час встановлення. Актуальність вбудованих ролей завжди підтримується перенесенням бази даних під час оновлення, а всі нетипові зміни буде втрачено. Якщо ви хочете визначити власний набір прав доступу, визначте для нього нову роль.

Список привілеїв

Фінансові рахунки (див. Оплата)

Переглядати фінансові дані [Administration, Billing]

Зміни

Отримувати зміни [Administration]

Коментарі

Залишати коментарі [Administration, Edit source, Power user, Review strings, Translate]

Вилучити коментар [Administration]

Складник

Змінити параметри складника [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, Manage languages]

Вилучати наявні переклади [Administration, 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.

Список груп

Під час встановлення (або після виконання setupgroups) буде створено вказані нижче групи. Ви можете внести зміни до цих груп. Втім, під час перенесення даних типові групи, якщо ви вилучите або перейменуєте їх, буде створено повторно.

Guests

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

У цій групі містяться записи лише анонімних користувачів (див. ANONYMOUS_USER_NAME).

Ви можете вилучати ролі з цієї групи для обмеження прав доступу користувачів, які не пройшли розпізнавання.

Типові ролі: Add suggestion, Access repository

Переглядачі

Ця роль забезпечує видимість відкритих проєктів для усіх користувачів. Типово, учасниками цієї групи є усі користувачі.

Типово, Автоматичні призначення груп створює усі нові облікові записи учасників цієї групи, коли вони долучаються.

Типові ролі: немає

Users

Типова група для усіх користувачів.

Типово, Автоматичні призначення груп створює усі нові облікові записи учасників цієї групи, коли вони долучаються.

Типові ролі: Power user

Рецензенти

Група для рецензентів (див. Процеси перекладу).

Типові ролі: Review strings

Керівники

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

Типові ролі: Administration

Попередження

Ніколи не вилучайте попередньо визначені групи і користувачів Weblate, оскільки це може призвести до неочікуваних проблем. Якщо ви не хочете скористатися цими можливостями, просто вилучіть усі привілеї з цих записів.