FastComments.com

Что такое контроль доступа? Internal Link

С помощью FastComments SSO Access Control, иногда называемого RBAC, пользователям можно ограничить доступ только к определённым страницам или веткам комментариев. Кроме того, пользователи могут @mention друг друга только в пределах одной группы.

Подробнее

Мы можем помещать Users и при необходимости Pages в группы.

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

Кроме того, Pages можно поместить в группы, и тогда пользователи смогут получать доступ только к комментариям для страниц, к которым у них есть доступ.

Мы называем это "User-Level" группы в отличие от "Page-Level" групп.

Итак, какой вариант вам подходит?

Используйте группы уровня пользователя, если...

  • Вы хотите использовать одно и то же значение urlId (URL страницы, или ID статьи), но ограничивать комментарии по группам.
  • Например, вы хотите иметь группы "New User" и "Veteran User", и они никогда не должны видеть комментарии друг друга на одних и тех же страницах.

Используйте группы уровня страницы, если...

  • У ваших групп есть конкретные страницы.
  • Например, пользователи из группы "Public Pages" никогда не должны просматривать статьи из "Top Secret".

Как это работает Internal Link

Контроль доступа FastComments работает путём назначения Pages и Users в требуемые группы.

Группа — это просто строковый идентификатор, например GREEN или abc-123.

Users и Pages не ограничены одной группой. Они ограничены 100 и 1000 группами соответственно.

Доступ к неавторизованным страницам

Если пользователь пытается получить доступ к странице, к которой у него нет доступа, он увидит сообщение об ошибке, как показано ниже:

Пример ошибки авторизации
Пример ошибки авторизации

Текст сообщения можно настроить.


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


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

Сторінка with null group ids, користувач with null group ids - має мати доступ.
Сторінка with null group ids, користувач with group ids - має мати доступ.
Сторінка with group ids, користувач with null group ids - має мати доступ.
Сторінка with group ids, користувач with empty list - НЕ має мати доступ.
Сторінка with group ids, користувач with group ids - перетин існує - має мати доступ.
Сторінка with group ids, користувач with group ids - перетин не існує - НЕ має мати доступ.
Сторінка with empty list of group ids (ніхто не має доступу), користувач 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 при каждой загрузке страницы.