Розуміння Ролей

Мова: Українська
Цю статтю перекладено з англійської за допомогою ШІ, тому вона може містити помилки. Ваші відгуки допоможуть нам її покращити.

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

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

Ключові поняття

Ресурси

Ресурси — це Форми, папки, звіти та Бази даних в ActivityInfo.

Операції

Операції — це будь-яка дія, що виконується над ресурсами та користувачами, наприклад:

  • Дозволи на рівні запису, такі як перегляд, додавання, редагування або видалення записів.
  • Дозволи, пов'язані з операціями, такі як управління користувачами, додавання або редагування форм та управління блокуваннями.

Для отримання додаткової інформації про всі можливі операції в ActivityInfo, дивіться повний список операцій.

Гранти

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

Гранти успадковуються всіма вкладеними ресурсами. Грант, застосований до папки, застосовує налаштування до всіх форм/папок у цій папці, тоді як грант, застосований до всієї бази даних, застосовує налаштування до всіх ресурсів у цій базі даних. Успадковані гранти також можна «перевизначити» для вкладеного ресурсу, застосувавши до нього новий грант, якщо це необхідно.

Як успадковуються гранти

У наступних прикладах використовується База даних з двома Формами активності та папкою з довідковими даними, яка містить Форму партнера:

Приклад: База даних з двома Формами та папкою
Приклад: База даних з двома Формами та папкою

Якщо ви надаєте Ролі явний грант на Базу даних, папка та всі Форми успадковують цей грант. Операції гранту застосовуються до всіх цих ресурсів.

Явний грант на Базу даних
Явний грант на Базу даних

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

Явний грант на папку
Явний грант на папку

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

Явний грант на одну Форму
Явний грант на одну Форму

Дозволи на перегляд для вкладених ресурсів

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

Те ж саме стосується підформ. Якщо Роль може переглядати записи в підформі, користувачі з цією Роллю також можуть переглядати батьківські записи, щоб знайти підзаписи. Якщо грант на підформу має умову на ПЕРЕГЛЯД (VIEW), користувачі можуть переглядати лише ті батьківські записи, які відповідають цій умові. Користувачі можуть переглядати ці батьківські записи, але не можуть їх додавати, редагувати чи видаляти.

Як перевизначити успадкований грант

Явний грант на ресурс замінює грант, який ресурс успадкував би в іншому випадку. Наприклад, ви надаєте Ролі грант на Базу даних, який дозволяє їй ПЕРЕГЛЯДАТИ (VIEW) записи. Папка та всі Форми успадковують цей грант:

Грант на ПЕРЕГЛЯД (VIEW) для Бази даних
Грант на ПЕРЕГЛЯД (VIEW) для Бази даних

Ви можете надати Ролі більше операцій для частини Бази даних. Наприклад, ви додаєте другий грант на папку, який дозволяє ПЕРЕГЛЯДАТИ (VIEW), ДОДАВАТИ (ADD), РЕДАГУВАТИ (EDIT) та ВИДАЛЯТИ (DELETE) записи. Папка та Форма партнера тепер використовують цей грант замість успадкованого гранту на ПЕРЕГЛЯД (VIEW):

Другий грант додає операції для папки
Другий грант додає операції для папки

Ви також можете використовувати грант для обмеження доступу до частини Бази даних. Наприклад, ви додаєте грант на папку без операцій. Користувачі з цією Роллю більше не зможуть отримати доступ до папки та Форми партнера, але вони все ще зможуть ПЕРЕГЛЯДАТИ (VIEW) записи в інших Формах:

Другий грант без операцій обмежує доступ до папки
Другий грант без операцій обмежує доступ до папки

Необов'язкові гранти

Грант можна встановити як необов'язковий, що означає, що ви можете вибрати, чи вмикати грант для кожного користувача, якого ви запрошуєте до вашої бази даних.

Умови

Умови дозволяють визначати правила, які встановлюють, над якими записами користувач може виконувати операції. Правила завжди виражаються у вигляді формули, яка обчислюється як Істина (TRUE) або Хибність (FALSE). Конструктор правил допомагає писати найпоширеніші види формул, зокрема для визначення, чи:

  • Запис пов'язаний з параметром
  • Конкретне поле відповідає вказаному значенню або набору значень
  • Запис призначено користувачу

Однак ви завжди можете використовувати редактор формул для написання власних формул, зокрема тих, що посилаються на пов'язані поля або підзаписи.

Наприклад, ви хочете обмежити видимість записів, пов'язаних з неповнолітніми, лише для уповноваженого персоналу. У вашій формі «Справа» є поле з назвою «ВІК». Створивши умову з правилом, де операція «ПЕРЕГЛЯД» (VIEW) дозволена лише тоді, коли формула «ВІК>18» є Істиною (TRUE), ви гарантуєте, що користувачі, до яких застосовується ця умова, зможуть переглядати лише ті записи, де значення в полі ВІК більше ніж 18.

Кілька правил можна об'єднати для створення умови для конкретної операції, і ви можете вирішити, чи всі правила є обов'язковими для виконання умови. Крім того, ви можете встановлювати різні умови для різних операцій. Наприклад, ви можете визначити умову, яка дозволяє користувачеві ПЕРЕГЛЯДАТИ (VIEW) всі записи у Формі, та іншу умову, яка дозволить користувачам РЕДАГУВАТИ (EDIT) лише ті записи, які їм призначені.

Параметри

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

Параметри пов'язані з довідковою формою, наприклад «Регіони», яка надає можливі значення, що можуть бути призначені користувачеві. Коли ви запрошуєте користувача до вашої бази даних, ви призначаєте йому конкретне значення параметра, що фактично пов'язує цього користувача з відповідним записом у довідковій формі.

Потім параметри можна використовувати як частину правила в умові для визначення набору записів, над якими дозволені операції. Коли параметри використовуються в умові, ви обмежуєте записи, над якими користувач може виконувати дії, лише тими записами, які посилаються на конкретне значення параметра, призначене користувачеві. Наприклад, якщо користувачеві було призначено значення «Захід» для параметра «Регіони», то можна налаштувати умову, щоб дозволити цьому користувачеві ДОДАВАТИ (ADD) лише записи, пов'язані з регіоном «Захід».

ВАЖЛИВО: Щоб увімкнути умови на основі параметрів, ваша форма повинна мати поле посилання, що вказує на форму, яка містить можливі значення параметрів. Якщо у вас є роль, де ви вмикаєте умови для операцій на рівні записів, що залежать від параметра, користувачі, яким призначено цю роль, не зможуть виконувати ці операції на рівні записів у формах, які не мають поля посилання, що вказує на форму, яка містить можливі значення параметрів.

Роль

Роль — це певна комбінація Грантів та Параметрів, яку ви призначаєте певній групі користувачів. Таким чином, Ролі є основним способом контролю над тим, які дії ви дозволяєте виконувати користувачам у вашій базі даних. Коли ви запрошуєте користувача до вашої бази даних, ви вказуєте, яку з доступних ролей йому слід призначити, і всі дії, які йому дозволено виконувати, будуть обмежені грантами та дозволами, які ви визначили для цієї ролі.

Скільки Ролей мені потрібно?

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

Ви можете використовувати Гранти та Параметри, щоб забезпечити гнучкість у діях, які можуть виконувати різні користувачі, і звести до мінімуму кількість Ролей, які вам потрібно створити. Наприклад, замість того, щоб створювати окрему роль для кожного з ваших партнерів, що звітують (що буде важко керувати, якщо їх багато), ви можете створити єдину роль під назвою «Партнер, що звітує», яка має Параметр для «Партнера». Параметр «Партнер» потім можна використовувати як частину Умови, щоб гарантувати, що ваші партнери, що звітують, можуть виконувати дії лише із записами, пов'язаними з їхньою власною організацією.

У деяких випадках бази даних організовані за папками за кластерним принципом або за типами програм. У випадку гуманітарної координації, наприклад, у вас можуть бути папки для секторів Охорони здоров'я, WASH та NFI. У вас також може бути три різні ролі залежно від функції особи в кластері, наприклад, керівник кластера, IMO кластера та член кластера. Щоб уникнути створення 3 x 3 = 9 ролей для члена кластера охорони здоров'я, члена кластера WASH тощо, ви можете використовувати необов'язкові Гранти, щоб мати лише три ролі. Коли ви призначаєте роль «Член кластера» користувачеві, ви також обираєте, до яких ресурсів конкретного сектора ви надаєте йому доступ.

Як пов'язані Ролі, гранти, умови та параметри
Як пов'язані Ролі, гранти, умови та параметри

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

Приклади

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

Обмеження доступу до записів на основі Параметра

Сценарій

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

Роль

Ви створюєте єдину роль під назвою «Співробітник програми».

Параметри

У ролі «Співробітник програми» ви створюєте параметр під назвою «Регіон», який вказує на довідкову форму «Регіони», що містить наступні можливі значення: «Північ», «Схід», «Південь» та «Захід».

Гранти

Ви вказуєте, що цій ролі «Співробітник програми» слід надати доступ до форми «Реєстр бенефіціарів», де ви вибираєте «Переглянути всі записи», «Додати записи» та «Редагувати записи» як дозволені операції.

У цьому гранті ви додаєте умову з правилом, де операції ПЕРЕГЛЯДУ (VIEW), ДОДАВАННЯ (ADD) та РЕДАГУВАННЯ (EDIT) дозволені лише для записів, які пов'язані з призначеним користувачеві значенням параметра «Регіон».

Таким чином, користувачі, яким призначено роль «Співробітник програми» та надано значення параметра «Регіон» «Північ», зможуть переглядати, додавати та редагувати записи у формі «Реєстр бенефіціарів» лише там, де поле «Регіон» встановлено на «Північ».

Обмеження доступу до записів на основі множинних умов

Сценарій

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

Роль

Ви створюєте єдину роль для всіх партнерів і називаєте її «Партнер, що звітує».

Параметри

Ви визначаєте два параметри — один для «Партнера», який вказує на ваш список партнерських організацій, та інший для «Сектора», який вказує на ваш список секторів (наприклад, «Охорона здоров'я», «Освіта», «WASH»).

Гранти

Ви вказуєте, що цій Ролі слід надати доступ до форми «Активності», де ви вибираєте «Переглянути всі записи», «Додати записи» та «Редагувати записи» як дозволені операції.

Потім ви додаєте дві умови в межах цього Гранту:

  • Умова 1: ПЕРЕГЛЯД (VIEW) лише записів, де поле «Сектор» відповідає призначеному користувачеві значенню параметра «Сектор»
  • Умова 2: ДОДАВАННЯ (ADD) та РЕДАГУВАННЯ (EDIT) лише записів, де поле «Партнер» відповідає призначеному користувачеві значенню параметра «Партнер»

Обмеження доступу до записів на основі призначеного користувача

Сценарій

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

Роль

Ви створюєте єдину роль під назвою «Соціальний працівник».

Гранти

Ви вказуєте, що ця роль повинна мати доступ до форми «Справи», де ви вибираєте «Переглянути всі записи», «Додати записи» та «Редагувати записи» як дозволені операції.

У цьому гранті ви додаєте умову з правилом, де операції ПЕРЕГЛЯДУ (VIEW), ДОДАВАННЯ (ADD) та РЕДАГУВАННЯ (EDIT) дозволені лише для записів, які призначені користувачеві. Для цієї ролі ви додасте ще одну умову з формулою, використовуючи конструктор правил. Це створить правило з формулою, яка дозволяє зіставляти конкретні записи з поточним користувачем. Ви виберете умову «Запис призначено користувачу» і за допомогою формули призначите «Соціальний працівник == @user».

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

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

Наступний елемент
Розуміння дозволів