FastComments.com

Що таке керування доступом? Internal Link

За допомогою FastComments SSO Access Control, іноді званого RBAC, користувачам можна обмежити доступ лише до певних сторінок або стрічок коментарів. Крім того, користувачі можуть @mention один одного лише в межах тієї ж групи.

Детальніше

Ми можемо розміщувати Users і за потреби Pages у групах.

Коли Users розміщені в групах і в Налаштуваннях віджета увімкнено Limit Comments by SSO User Groups, користувачі бачитимуть лише коментарі від користувачів зі своїх груп і зможуть @mention тільки користувачів тієї ж групи.

Додатково, Pages можна розміщувати у групах, і тоді користувачі зможуть отримувати доступ лише до коментарів для сторінок, до яких вони мають доступ.

Ми називаємо це "User-Level" groups на відміну від "Page-Level" groups.

То який підходить вам?

Use User-Level Groups if...

  • Ви хочете використовувати один і той же urlId (URL сторінки або ID статті), але обмежити коментарі за групами.
  • Наприклад, ви хочете мати групи «Новий користувач» і «Досвідчений користувач», і вони ніколи не повинні бачити коментарі один одного на тих самих сторінках.

Use Page-Level Groups if...

  • Ваші групи прив'язані до конкретних сторінок.
  • Наприклад, користувачі в групі «Публічні сторінки» ніколи не повинні переглядати статті в групі «Цілком секретні».

Як це працює Internal Link

FastComments Access Control працює шляхом призначення Pages і Users у потрібні групи.

Група — це просто рядковий ідентифікатор, наприклад GREEN або abc-123.

Users і Pages не обмежуються лише однією групою. Вони обмежені 100 і 1000 групами відповідно.

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

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

Приклад відмови в авторизації
Приклад відмови в авторизації

Текст повідомлення можна налаштувати.


Специфікація Internal Link


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

Page with null group ids, user with null group ids - повинен мати доступ.
Page with null group ids, user with group ids - повинен мати доступ.
Page with group ids, user with null group ids - повинен мати доступ.
Page with group ids, user with empty list - НЕ повинен мати доступ.
Page with group ids, user with group ids - intersection exists - повинен мати доступ.
Page with group ids, user with group ids - intersection does not exist - НЕ повинен мати доступ.
Page with empty list of group ids (nobody has access), user with null - НЕ повинен мати доступ.

SSO User A = group ids не визначені (null = повний доступ).
SSO User B = group ids не визначені (null = повний доступ).
A може @B.

SSO User A = group ids не визначені (null = повний доступ).
SSO User B = group ids визначені.
A може @B.

SSO User A = group ids визначені.
SSO User B = group ids не визначені (null = повний доступ).
A може @B.

SSO User A = group ids = [a].
SSO User B = group ids = [b].
A НЕ може @B.

SSO User A = group ids = [a].
SSO User B = group ids = [a, b].
A може @B.

Реалізація Internal Link

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

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

Якщо користувач вручну введе @mention і відправить свій коментар, воно залишиться як звичайний текст. Інший користувач не буде позначений.

Підтримка груп

Groups визначаються за допомогою API-ресурсів Pages і SSOUsers відповідно.

API Pages може бути викликано, щоб визначити набір груп, яким дозволено доступ до сторінки. За замовчуванням доступ мають усі групи, та користувачі, які не належать до жодної групи.

Аналогічно, API SSOUsers може бути викликано, щоб визначити групи, пов'язані з кожним користувачем.

Для обох ресурсів немає обмежень щодо того, коли групи можуть бути встановлені або оновлені.

Якщо бажано лише обмежити можливість користувачів @mention один одного, тоді Pages не потрібно брати до уваги.

Примітка!

Визначення та оновлення груп користувачів SSO не вимагає використання API і натомість може оновлюватися автоматично шляхом визначення group ids у SSO payload, що передається віджету коментарів. Однак для великих списків груп цього не рекомендовано, оскільки користувачу доведеться надсилати цей payload при кожному завантаженні сторінки.