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

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

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

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

Якщо ви не адмініструєте увесь встановлений екземпляр Weblate і просто маєте доступ до керування певними проєктами (як на Hosted Weblate), ваші варіанти керування доступом обмежено вказаними нижче параметрами. Якщо вам не потрібна складна конфігурація, цих варіантів має бути достатньо.

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

Примітка

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

Ви можете обмежити доступ користувачів до окремих проєктів, вибравши інший варіант Керування доступом. Доступні варіанти:

Відкритий

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

Захищений

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

Приватний

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

Власний

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

Керування доступом може бути змінено на вкладці Доступ налаштувань (УправлінняНалаштування) відповідного проєкту.

../_images/project-access.png

Типове значення можна змінити за допомогою DEFAULT_ACCESS_CONTROL.

Примітка

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

Примітка

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

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

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

Дивись також

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

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

Користувачі з правами доступу Керування доступом до проєкту (див. Список привілеїв) можуть керувати записами користувачів у проєктах із відмінним від Нетипового керуванням доступом. Вони можуть пов’язувати користувачів із однією із вказаних нижче груп.

Для проєктів Public, Protected і Private:

Управління

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

Рецензування (лише якщо увімкнено процес із рецензуванням)

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

Лише для проєктів Protected і Private:

Переклад

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

Джерела

Можуть редагувати початкові рядки (якщо дозволено параметрами проєкту) і дані щодо початкового рядка.

Мови

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

Глосарій

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

Пам’ять

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

Знімки екрана

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

VCS

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

Оплата

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

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

Примітка

Для керування доступом, відмінного від варіанта Custom, екземпляр кожної групи, описаної вище, визначається для кожного проєкту. Назвами цих груп будуть Проєкт@Група. Ці назви також буде показано у адміністративному інтерфейсі Django. Втім, назви груп не можна редагувати з інтерфейсу користувача Weblate.

../_images/manage-users.png

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

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

Крім того, окрім додавання наявного користувача до проєкту, можна запросити нових користувачів. Запис нового користувача буде створено негайно, але він лишатиметься неактивним до входу користувача до системи за допомогою посилання у запрошенні, яке буде надіслано електронною поштою. Для надсилання запрошення не потрібні права доступу на рівні сайта, достатньо буде прав доступу до керування доступом на рівні проєкту (наприклад, членства у групі Administration).

Підказка

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

Нове в версії 3.11: Передбачено можливість повторного надсилання запрошення користувачам електронною поштою (скасовує будь-які раніше надіслані запрошення).

Подібний тип запрошень доступний і на рівні сайта з інтерфейсу керування на вкладці Користувачі.

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

Ви можете налаштувати ваші проєкти як Protected або Private і :ref:`керувати користувачами <manage-acl>`окремих проєктів за допомогою інтерфейсу Weblate.

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

Однією з головних переваг керування правами доступу з інтерфейсу користувача Weblate є те, що ви можете делегувати його іншим користувачам без надання їм прав доступу надкористувача. Для цього додайте користувачів до групи Administration проєкту.

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

Примітка

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

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

Найпотужнішими можливостями поточної версії системи керування доступом Weblate можна скористатися лише за допомогою адміністративного інтерфейсу Django. Цей інтерфейс надає змогу керувати правами доступу до будь-якого проєкту. Щоб скористатися ним, не обов’язково перемикатися на керування доступом Custom. Втім, що скористатися цим вам знадобляться права доступу надкористувача.

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

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

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

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

Для керування правами доступами для усього екземпляра одразу додайте користувачів до відповідних типових груп:

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

Крім того, ви можете надати бажані додаткові права доступу типовим групам. Наприклад, ви можете надати права доступу для керування знімками вікон усім учасникам групи Users.

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

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

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

Приклад:

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

  1. Вилучити права доступу до перекладу Czech для усіх користувачів. За типових налаштувань це можна зробити зміною типової групи Users.

    Група Users

    Вибір мови

    As defined

    Мови

    Усі, окрім Czech

  1. Додати спеціалізовану групу для перекладачів Czech.

    Група Czech translators

    Ролі

    Power users

    Вибір проєкту

    All public projects

    Вибір мови

    As defined

    Мови

    Czech

  1. Додати користувачів, яким ви хочете надати права доступу, до цієї групи.

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

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

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

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

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

Роль

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

Користувач

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

Група

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

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

Примітка

Із групою може бути не пов’язано жодних ролей. У цьому випадку програма припускатиме доступ до навігації проєктом для будь-кого (див. нижче).

Доступ до навігації проєктом

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

Доступ до навігації складником

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

Область груп

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

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

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

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

  • Обмеження, які накладаються параметром Мови групи, застосовуються окремо, після перевірки, чи має користувач доступ до певних дій. А саме, вони застосовуються лише до дій безпосередньо пов’язаних із самим процесом перекладу, зокрема рецензуванням, збереженням перекладів, додаванням пропозицій тощо.

Підказка

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

Приклад:

Припустімо, маємо проєкт щось із такими складниками: щось/десь і щось/там і таку групу:

Група Spanish Admin-Reviewers

Ролі

Review Strings, Manage repository

Складники

щось/десь

Мови

Spanish

Учасники цієї групи матимуть такі права доступу (припускаємо параметри типової ролі):

  • Загальний доступ (до навігації) до усього проєкту щось, включно із обома складниками у ньому: щось/десь і щось/там.

  • Рецензування рядків у іспанському перекладі щось/десь (і тільки у ньому).

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

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

У нижній частині сторінки редагування Група адміністративного інтерфейсу Django ви можете вказати Automatic group assignments, тобто список регулярних виразів, які використовуватимуться для автоматичного пов’язування створених записів користувачів до групи на основі адреси електронної пошти. Ця прив’язка виконуватиметься лише під час створення облікового запису.

Найзагальнішим випадком використання цієї можливості є пов’язування усіх нових користувачів до певної типової групи. Для цього вам, ймовірно, слід зберегти типове значення (^.*$) у полі регулярного виразу. Ще одним випадком використання для цього параметра може бути типове надання певних додаткових прав доступу працівникам вашої компанії. Припускаючи, що усі вони користуються корпоративними адресами електронної пошти на вашому домені, досягти цього можна виразом, подібним до ^.*@mycompany.com.

Примітка

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

Примітка

У поточній версії немає способу пакетного додавання наявних користувачів до певної групи за допомогою інтерфейсу користувача. Для цього ви можете вдатися до використання програмного інтерфейсу REST.

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

Після встановлення буде створено типовий набір груп (див. Список груп).

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

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

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

Переглядати фінансові дані [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, оскільки це може призвести до неочікуваних проблем. Якщо ви не хочете скористатися цими можливостями, просто вилучіть усі привілеї з цих записів.

Додаткові обмеження доступу

Якщо ви хочете скористатися встановленим вами Weblate у менш відкритий спосіб, тобто дозволити нових користувачів лише на основі запрошень, зробити це можна налаштовуванням Weblate так, що до нього матимуть доступ лише відомі користувачі. Для цього ви можете встановити для параметра REGISTRATION_OPEN значення False для запобігання реєстрації будь-яких нових користувачів і встановити для REQUIRE_LOGIN значення /.*, щоб вимагати входу до системи для доступу до усіх сторінок сайта. Це, на базовому рівні, є способом блокування встановленого вами Weblate.

Підказка

Ви можете скористатися вбудованими запрошеннями для додавання нових користувачів.